如何将 bindtags 与 ttk.Entry 一起使用?

问题描述 投票:0回答:1

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()

python tkinter tk-toolkit ttk
1个回答
0
投票

您已经为条目提供了

tk.Entry
小部件的绑定标签。你应该给它
ttk.Entry
小部件的绑定标签:

ttk_entry.bindtags(('TEntry', '.ttk_entry', '.', 'all'))
#                    ^^^^^^
© www.soinside.com 2019 - 2024. All rights reserved.