gpt4 book ai didi

python - Tkinter - 使用单击而不是双击从 TreeView 中选择项目( TreeView 项目选择时的回调)

转载 作者:行者123 更新时间:2023-12-02 19:33:45 28 4
gpt4 key购买 nike

当您想在 TreeView 中选择一个项目时,通常使用双击:

def print_element(event):
print(my_treeview.selection()[0])
my_treeview.bind("<Double-1>", print_element)

今天我尝试做同样的事情,但使用的是单击:

my_treeview.bind("<Button-1>", print_element)

但这行不通。输出只是一个空元组。我开始在网上搜索解释...为什么它不起作用?

编辑:我的目标实际上是 do something每次选择 TreeView 项目时。

  • 我自己使用 identify() 提出了一个解决方案Tkinter 的功能
  • 另一位用户建议使用 Tkinter 回调 <ButtonRelease-1>哪个更合适
  • 最后,第三位用户将他的答案集中在使用 Tkinter 回调 <<TreeviewSelect>> 上。 ,这肯定是最好的选择

最佳答案

它不按您期望的方式工作的原因是因为您的自定义单击绑定(bind)发生在默认行为之前。因此,当您的单击被处理时,这发生在选择项目之前。第二次单击时,您的函数将打印之前选择的项目。

如果你想在选择一个项目时调用一个函数,你应该绑定(bind)到 <<TreeviewSelect>> ,它将在用户通过单击或通过键盘选择一个项目后立即触发。

TreeView 的默认行为支持一次选择多个项目,因此以下代码会将所有选定项目的文本打印为列表,即使只选择了一个项目。当然,如果您愿意,您可以修改它以仅打印第一个选定的项目。

def print_element(event):
tree = event.widget
selection = [tree.item(item)["text"] for item in tree.selection()]
print("selected items:", selection)

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

关于python - Tkinter - 使用单击而不是双击从 TreeView 中选择项目( TreeView 项目选择时的回调),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61404261/

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