在this question之后,我可以设置bindtags来获取包含激活事件的按键的事件。
当我将
tk.Entry
更改为ttk.Entry
时,事件仍然有效,但我无法选择条目内容或单击以给予ttk.Entry
焦点。字段之间的制表符确实选择了全部,但选择部分内容不起作用。
bintags 与 ttk 小部件有何不同?或者我如何配置 ttk bindtags 以允许鼠标点击和内容选择?
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
status = ttk.Label(root)
status.grid(row=2, column=0)
def OnKeyPress(event):
value = event.widget.get()
string="value of %s is '%s'" % (event.widget._name, value)
status.configure(text=string)
tk_entry = tk.Entry(root, name="tk_entry")
tk_entry.bindtags(('Entry', '.tk_entry', '.', 'all'))
tk_entry.grid(row=0, column=0, padx=3, pady=3)
tk_entry.bind("<KeyPress>", OnKeyPress)
# this entry content is unable to be selected
ttk_entry = ttk.Entry(root, name="ttk_entry")
ttk_entry.bindtags(('Entry', '.ttk_entry', '.', 'all'))
ttk_entry.grid(row=1, column=0, padx=3, pady=3)
ttk_entry.bind("<KeyPress>", OnKeyPress)
root.mainloop()
您已经为条目提供了
tk.Entry
小部件的绑定标签。你应该给它 ttk.Entry
小部件的绑定标签:
ttk_entry.bindtags(('TEntry', '.ttk_entry', '.', 'all'))
# ^^^^^^