【发布时间】:2013-12-21 20:26:45
【问题描述】:
这是一个简单的 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 描述." 在状态栏中)
因为我找不到有关此类事件的任何文档,或者我想在这里问的其他方法。
【问题讨论】:
-
Tk 中似乎没有
hover事件或类似的东西,所以你可以这样做。 -
可以参考这个-HoverClass