以下是演示我的问题的简单ttk对话框示例:
from Tkinter import *
import ttk
items = ["Item %d" % (i+1,) for i in range(9)]
d = dict(zip(items, [i + ' description.' for i in items]))
root = Tk()
frame = ttk.Frame(root, padding=8)
cb_val = StringVar()
cb_val.set('Item 1')
cb = ttk.Combobox(frame, textvariable=cb_val, height=4)
cb['values'] = sorted(d.keys())
statusmsg = StringVar()
status = ttk.Label(frame, textvariable=statusmsg, relief='solid')
frame.grid()
cb.grid()
status.grid(pady=(80, 0), sticky='SWE')
cb.bind('<<ComboboxSelected>>',
lambda e: statusmsg.set(d[sorted(d.keys())[int(cb.current())]]))
root.mainloop()
所以我绑定<ComboboxSelected>
事件以使用current()
方法提取选定的组合框项目,然后使用字典查找在状态栏中打印项目描述。
这还不错,但我想在可能的情况下绑定“悬停项目”事件,并从组合框下拉菜单中提取当前悬停项目的值(或者如我所希望获得的示例屏幕截图“项目3描述。“在状态栏中)
由于我找不到任何关于此类事件的文档,或者我想在此处提出另一种方法。
答案 0 :(得分:-1)
这是我的简短例子
from tkinter import *
from tkinter import ttk
def enviar():
print(samples.get())
root = Tk()
samples = StringVar()
a = ttk.Combobox(root,textvariable=samples)
a['values']=['San Salvador','La Union','San Marcos','El Puerto']
a.current(0)
a.grid(row=0,column=0)
Button(root,text='enviar',command=enviar).grid(row=0,column=1)
Label(root,text='Ha seleccionado: ',font=('Verdana',12)).grid(row=1,column=0)
Label(root,textvariable=samples).grid(row=1,column=1,sticky=E)
root.mainloop()