gpt4 book ai didi

python - 如何刷新tkinter条目值?我遇到一键延迟

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:14 24 4
gpt4 key购买 nike

我构建了一个界面,用户可以在其中填写分层表单。过去的值显示在ttk.Treeview中。我允许用户通过单击树来编辑以前的值。该值将填充在可以编辑和覆盖的表单上。

问题:我在 Entry 小部件上插入的值仅在用户下次单击它时显示,因此它始终是 1 个单击滞后。请运行我的示例代码以获得更好的理解。这会让人感到困惑,因为如果用户单击一个值,然后单击另一个值,它将显示先前单击的值。

它一定与 tkinter 中的事件处理例程有关,但我找不到并回答。我怎样才能摆脱这种滞后?

import tkinter as tk
from tkinter import ttk


root = tk.Tk()

def cb_clique(event):
item = tree.selection()[0]
entry1.delete(0, "end")
entry1.insert(0, item)

entry1 = tk.Entry(root, width=15)
entry1.grid(row=1,column=1)

tree = ttk.Treeview(root)
tree.bind("<Button-1>", cb_clique)
tree["columns"]=("valor")
tree.column("valor", width=200 )
tree.heading("valor", text="Valor")
tree.grid(row=3, column = 1, columnspan = 4)
tree.insert("", "end", iid = "Will display position",text = "Click me",
values=("a","b"))
tree.insert("", "end", iid = "Use position to get info",
text = "Click me", values=("a","b"))

root.mainloop()

最佳答案

看起来像<Button-1>事件在窗口注意到选择已更改之前触发,因此 selection()返回单击之前选择的内容。尝试将事件绑定(bind)更改为 <<TreeViewSelect>> .

tree.bind("<<TreeviewSelect>>", cb_clique)

关于python - 如何刷新tkinter条目值?我遇到一键延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31052687/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com