要存取 combobox 的 onselected 事件,請使用下面範例:
bind <> to a method…
import tkinter as tk
from tkinter import ttk
class Main(tk.Tk):
def __init__(self, *args, **kwargs):
tk.Tk.__init__(self, *args, **kwargs)
self.container = tk.Frame(self)
self.container.pack(side="top", fill = "both", expand=True)
self.container.grid_rowconfigure(0, weight=1)
self.container.grid_columnconfigure(0, weight=1)
self.cb=ttk.Combobox(self.container, values=[0,1, 2, 3] , state='readonly')
self.cb.bind('<<ComboboxSelected>>', self.modified)
self.cb.pack()
def modified (self, event) :
print(self.cb.get())
main = Main()
main.mainloop()
範例2號:
import tkinter as tk
from tkinter import ttk
def callbackFunc(event):
print("New Element Selected")
app = tk.Tk()
app.geometry('200x100')
labelTop = tk.Label(app,
text = "Choose your favourite month")
labelTop.grid(column=0, row=0)
comboExample = ttk.Combobox(app,
values=[
"January",
"February",
"March",
"April"])
comboExample.grid(column=0, row=1)
comboExample.current(1)
comboExample.bind("<<ComboboxSelected>>", callbackFunc)
app.mainloop()