Python 3.x 从绑定事件检索Tkinter中的组合框名称
我试图在tkinter python中创建一个设置窗口,我试图为所有combobox创建相同的回调函数,但我不知道如何识别哪个combobox是调用方。示例代码:Python 3.x 从绑定事件检索Tkinter中的组合框名称,python-3.x,tkinter,combobox,Python 3.x,Tkinter,Combobox,我试图在tkinter python中创建一个设置窗口,我试图为所有combobox创建相同的回调函数,但我不知道如何识别哪个combobox是调用方。示例代码: def Open_settings_Form(): def callbackFunc(event): print(event.widget.current()) global SETTINGS Settings_Form = Toplevel(Main_Form) Settings_F
def Open_settings_Form():
def callbackFunc(event):
print(event.widget.current())
global SETTINGS
Settings_Form = Toplevel(Main_Form)
Settings_Form.title("LOG Settings")
Settings_Form.geometry('900x300')
labelTop = Label(Settings_Form, text = "Log Parsing Order")
labelTop.grid(column=0, row=0)
combo0 = ttk.Combobox(Settings_Form, state="readonly", values=Log_Fields)
combo0.bind("<<ComboboxSelected>>", callbackFunc)
combo0.current(SETTINGS['LOG_Order'][0])
combo0.grid(column=0, row=1)
combo1 = ttk.Combobox(Settings_Form, state="readonly", values=Log_Fields)
combo1.bind("<<ComboboxSelected>>", callbackFunc)
combo1.current(SETTINGS['LOG_Order'][1])
combo1.grid(column=1, row=1)
combo2 = ttk.Combobox(Settings_Form, state="readonly", values=Log_Fields)
combo2.bind("<<ComboboxSelected>>", callbackFunc)
combo2.current(SETTINGS['LOG_Order'][2])
combo2.grid(column=2, row=1)
combo3 = ttk.Combobox(Settings_Form, state="readonly", values=Log_Fields)
combo3.bind("<<ComboboxSelected>>", callbackFunc)
combo3.current(SETTINGS['LOG_Order'][3])
combo3.grid(column=3, row=1)
非常感谢您可以将名称传递给您的
组合框
小部件,并通过事件.小部件
回调检索它
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
def details(event):
print (event.widget)
combo1 = ttk.Combobox(root,name="box1")
combo1["values"] = ("A","B","C")
combo1.pack()
combo1.bind("<<ComboboxSelected>>",details)
combo2 = ttk.Combobox(root,name="box2")
combo2["values"] = ("D","E","F")
combo2.pack()
combo2.bind("<<ComboboxSelected>>",details)
root.mainloop()
将tkinter作为tk导入
从tkinter导入ttk
root=tk.tk()
def详细信息(事件):
打印(event.widget)
combo1=ttk.Combobox(root,name=“box1”)
组合1[“值”]=(“A”、“B”、“C”)
combo1.pack()
combo1.bind(“,详细信息)
combo2=ttk.Combobox(root,name=“box2”)
组合2[“值”]=(“D”、“E”、“F”)
combo2.pack()
combo2.bind(“,详细信息)
root.mainloop()
谢谢,调用event.widget。\回调函数中的name给出了该名称。您需要该名称,还是需要对实际widget对象的引用?
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
def details(event):
print (event.widget)
combo1 = ttk.Combobox(root,name="box1")
combo1["values"] = ("A","B","C")
combo1.pack()
combo1.bind("<<ComboboxSelected>>",details)
combo2 = ttk.Combobox(root,name="box2")
combo2["values"] = ("D","E","F")
combo2.pack()
combo2.bind("<<ComboboxSelected>>",details)
root.mainloop()