Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何刷新tkinter条目值?我有一个点击滞后_Python_Python 3.x_Tkinter - Fatal编程技术网

Python 如何刷新tkinter条目值?我有一个点击滞后

Python 如何刷新tkinter条目值?我有一个点击滞后,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我构建了一个界面,用户在其中填写分层表单。过去的值显示在ttk.Treeview中。 我允许用户通过单击树来编辑以前的值。该值在表单上填充,可在表单上编辑和覆盖该值 问题是:我在条目小部件上插入的值只有在用户下次单击它时才会显示,因此它总是1次单击滞后。请运行我的示例代码以更好地理解。这会让人困惑,因为如果用户先单击一个值,然后再单击另一个值,它将显示以前单击的值 这一定与tkinter中的事件处理例程有关,但我找不到答案。 我怎样才能摆脱这种滞后 import tkinter as tk fr

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

问题是:我在
条目
小部件上插入的值只有在用户下次单击它时才会显示,因此它总是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()
将tkinter作为tk导入
从tkinter导入ttk
root=tk.tk()
def cb_集团(事件):
item=tree.selection()[0]
条目1.删除(0,“结束”)
条目1.插入(0,项)
entry1=tk.Entry(根,宽度=15)
entry1.grid(行=1,列=1)
tree=ttk.Treeview(根)
tree.bind(“,cb_集团)
树[“列”]=(“值”)
树形柱(“valor”,宽度=200)
树标题(“valor”,text=“valor”)
tree.grid(行=3,列=1,列span=4)
tree.insert(“,”end“,iid=“将显示位置”,text=“单击我”,
值=(“a”、“b”))
tree.insert(“,”end“,iid=“使用位置获取信息”,
text=“单击我”,值=(“a”、“b”))
root.mainloop()
看起来像是在窗口注意到所选内容已更改之前触发了
事件,因此
selection()
返回单击之前所选的内容。尝试将事件绑定更改为

tree.bind(“,cb_集团)

谢谢!我已经找了好一阵子了!现在太棒了!如果我简单地为不需要选择的条目设置一个值,它确实不会延迟,但是我没有注意到这一点,所以我试图解决错误的问题。
tree.bind("<<TreeviewSelect>>", cb_clique)