2024. 3. 26. 18:22ㆍGUI/tkinter
요약 : 이 튜토리얼에서는 드롭다운 메뉴에 옵션 세트를 표시하는 Tkinter OptionMenu 위젯에 대해 배웁니다.
Tkinter OptionMenu 위젯 소개
OptionMenu 위젯은 드롭다운 메뉴에서 미리 정의된 옵션 세트를 제공합니다.
새 OptionMenu 위젯을 만들려면, OptionMenu 생성자를 사용합니다.
OptionMenu(container, variable, default=None, *values, **kwargs)
OptionMenu 생성자는 다음과 같은 여러 매개변수를 허용합니다.
- container는 OptionMenu 위젯의 상위 위젯입니다.
- variable은 OptionMenu의 현재 선택된 옵션을 보유하는 tk.StringVar 개체 입니다.
- default는 위젯이 처음에 표시하는 기본 옵션입니다.
- values는 드롭다운 메뉴에 나타나는 값 목록입니다.
- kwargs는 위젯별 구성입니다.
OptionMenu는 direction 옵션을 통해 드롭다운 메뉴의 방향을 변경할 수 있습니다. 유효한 방향은 'above', 'below', 'left', 'right'또는 'flush'입니다.
OptionMen 위젯은 command 옵션도 지원합니다. 이를 통해 항목이 선택된 후 호출될 콜백을 할당할 수 있습니다.
다른 ttk 위젯과 마찬가지로 style 옵션을 사용하여 OptionMenu의 스타일 이름을 지정할 수 있습니다.
Tkinter OptionMenu위젯 예
다음 예에서는 OptionMenu 위젯을 사용하는 방법을 보여줍니다. 항목을 선택하면 선택 항목이 라벨에 표시됩니다.
import tkinter as tk
from tkinter import ttk
class App(tk.Tk):
def __init__(self):
super().__init__()
self.geometry("320x80")
self.title('Tkinter OptionMenu Widget')
# initialize data
self.languages = ('Python', 'JavaScript', 'Java',
'Swift', 'GoLang', 'C#', 'C++', 'Scala')
# set up variable
self.option_var = tk.StringVar(self)
# create widget
self.create_wigets()
def create_wigets(self):
# padding for widgets using the grid layout
paddings = {'padx': 5, 'pady': 5}
# label
label = ttk.Label(self, text='Select your most favorite language:')
label.grid(column=0, row=0, sticky=tk.W, **paddings)
# option menu
option_menu = ttk.OptionMenu(
self,
self.option_var,
self.languages[0],
*self.languages,
command=self.option_changed)
option_menu.grid(column=1, row=0, sticky=tk.W, **paddings)
# output label
self.output_label = ttk.Label(self, foreground='red')
self.output_label.grid(column=0, row=1, sticky=tk.W, **paddings)
def option_changed(self, *args):
self.output_label['text'] = f'You selected: {self.option_var.get()}'
if __name__ == "__main__":
app = App()
app.mainloop()
동작 방식.
먼저 OptionMenu 위젯에 표시하는 데 사용되는 문자열 목록을 정의합니다.
self.languages = ('Python', 'JavaScript', 'Java', 'Swift', 'GoLang', 'C#', 'C++', 'Scala')
둘째, init() 메소드에서 OptionMenu의 현재 선택된 항목을 보유하는 ttk.StringVar() 객체를 정의합니다.
self.option_var = tk.StringVar(self)
셋째, OptionMenu 위젯의 새 인스턴스를 만듭니다.
option_menu = ttk.OptionMenu(
self,
self.option_var,
self.languages[0],
*self.languages,
command=self.option_changed)
기본값 self.languages[0]을 건너뛰면,OptionMenu의 첫 번째 항목이 사라집니다.
항목이 선택된 후에 option_changed() 메소드가 실행됩니다. 이 메서드는 선택한 항목에 output_label를 위한 텍스트를 설정합니다 .
self.output_label['text'] = f'You selected: {self.option_var.get()}'
요약
- 드롭다운 메뉴에서 사용자에게 고정된 선택 항목 세트를 제공하려면 Tkinter OptionMenu 위젯을 사용하십시오 .
- 항상 OptionMenu 생성자의 기본값을 지정하십시오.
'GUI > tkinter' 카테고리의 다른 글
Tkinter Themes (0) | 2024.03.27 |
---|---|
Tkinter Example (0) | 2024.03.26 |
Tkinter Menubutton (0) | 2024.03.24 |
Tkinter Menu (0) | 2024.03.23 |
Tkinter Open File Dialog (0) | 2024.03.22 |