2024. 3. 24. 17:05ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 Tkinter Menubutton 위젯을 사용하는 방법을 배우게 됩니다.
Menubutton 위젯 소개
Menubutton 위젯은 Button 와 Menu 위젯의 조합입니다.
Menubutton을 클릭하면 선택 항목이 있는 메뉴가 표시됩니다.
예를 들어:
Menubutton 위젯을 만들려면 다음 단계를 따르세요.
먼저 MenuButton 위젯을 만듭니다.
menu_button = ttk.Menubutton(container, **options)
둘째, Menu 클래스의 새 인스턴스를 만듭니다.
menu = tk.Menu(menu_button, tearoff=False)
셋째, 메뉴 인스턴스에 하나 이상의 메뉴 항목을 추가합니다. 그리고 메뉴에 체크버튼이나 라디오버튼 위젯을 추가할 수 있습니다.
마지막으로 MenuButton 인스턴스에 Menu를 할당합니다.
import tkinter as tk
from tkinter import ttk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry('300x250')
self.title('Menubutton Demo')
# Menubutton variable
self.selected_color = tk.StringVar()
self.selected_color.trace("w", self.menu_item_selected)
# create the menu button
self.create_menu_button()
def menu_item_selected(self, *args):
""" handle menu selected event """
self.config(bg=self.selected_color.get())
def create_menu_button(self):
""" create a menu button """
# menu variable
colors = ('Red', 'Green', 'Blue')
# create the Menubutton
menu_button = ttk.Menubutton(
self,
text='Select a color')
# create a new menu instance
menu = tk.Menu(menu_button, tearoff=0)
for color in colors:
menu.add_radiobutton(
label=color,
value=color,
variable=self.selected_color)
# associate menu with the Menubutton
menu_button["menu"] = menu
menu_button.pack(expand=True)
if __name__ == "__main__":
app = App()
app.mainloop()
동작 방식.
이 init() 메서드에서는 메뉴에서 선택한 값을 추적하는 변수를 정의합니다.
self.selected_color = tk.StringVar()
self.selected_color.trace("w", self.menu_item_selected)
selected_color 값이 변경되면, menu_item_selected 메소드가 실행됩니다.
이 create_menu_button()메서드는 MenuButton을 생성합니다.
먼저 메뉴버튼을 만듭니다.
menu_button = ttk.Menubutton(
self,
text='Select a color')
그런 다음 새 메뉴를 만들고, colors 튜플에서 파생된 세 개의 Radiobutton 위젯을 메뉴에 추가합니다.
# create a new menu instance
menu = tk.Menu(menu_button, tearoff=0)
for color in colors:
menu.add_radiobutton(
label=color,
value=color,
variable=self.selected_color)
메뉴 항목을 선택하면, self.selected_color 변수 값이 선택한 메뉴 항목의 값으로 변경됩니다.
마지막으로 메뉴를 Menu에button연결합니다.
menu_button["menu"] = menu
요약
- Tkinter Menubutton 위젯을 사용하여 버튼과 관련된 메뉴를 만듭니다.
'GUI > tkinter' 카테고리의 다른 글
Tkinter Example (0) | 2024.03.26 |
---|---|
Tkinter OptionMenu (0) | 2024.03.26 |
Tkinter Menu (0) | 2024.03.23 |
Tkinter Open File Dialog (0) | 2024.03.22 |
Tkinter Color Chooser (0) | 2024.03.21 |