【问题标题】:Bind event on combobox item hover在组合框项悬停时绑定事件
【发布时间】: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()

所以我绑定&lt;ComboboxSelected&gt;事件,使用current()方法提取选中的组合框项目,然后使用字典查找在制作的状态栏中打印项目描述。

这还不错,但如果可能的话,我想绑定“悬停项目”事件,并从组合框下拉菜单中提取当前悬停项目的值(或者如示例截图所示,我想获得“项目 3 描述." 在状态栏中)

因为我找不到有关此类事件的任何文档,或者我想在这里问的其他方法。

【问题讨论】:

  • Tk 中似乎没有 hover 事件或类似的东西,所以你可以这样做。
  • 可以参考这个-HoverClass

标签: python tkinter ttk


【解决方案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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多