【问题标题】:Calling a function based on a Listbox current selection "curselection()" in Tkinter [duplicate]在Tkinter中调用基于列表框当前选择“curselection()”的函数[重复]
【发布时间】:2014-01-31 10:58:00
【问题描述】:

我在 Tkinter 的 GUI 上有一个列表框。我想实现一个例程,如果选择了一个列表框项,则调用一个函数(基于此选择)来修改 gui(添加另一个相邻的列表框)。然后,如果该选择发生更改,则 gui 将恢复为其默认视图。这可以做到吗?似乎您需要将功能与列表框选择相关联,不确定如何执行此操作或是否可能...有没有人知道这个秘密?

可以在我的列表框底部添加“选择”按钮,但我想避免这些额外的用户工作并节省 GUI 上的空间。

提前感谢大家!丹尼尔

【问题讨论】:

    标签: python listbox tkinter


    【解决方案1】:

    只要选择改变,列表框就会触发虚拟事件<<ListboxSelect>>。如果你绑定到它,你的函数会在选择改变时被调用,即使它是通过键盘改变的。

    【讨论】:

      【解决方案2】:

      好吧,没关系,下面的链接用下面的例子回答了我的问题:

      http://effbot.org/tkinterbook/tkinter-events-and-bindings.htm

      from Tkinter import *
      
      root = Tk()
      
      def callback(event):
          print "clicked at", event.x, event.y 
      
      frame = Frame(root, width=100, height=100)
      frame.bind("<Button-1>", callback)
      frame.pack()
      
      root.mainloop()
      

      (当然用列表框小部件替换框架) 有效!

      【讨论】:

      • 通常,绑定到列表框上的&lt;1&gt; 不会完全符合您的预期。绑定将在您单击的项目被选中之前触发。另外,如果通过 rht 键盘更改选择,它将不起作用。相反,您应该绑定&lt;&lt;ListboxSelect&gt;&gt;,这将在项目被选中后触发。
      • 谢谢。我很抱歉,我发帖时没有看到你的回复。
      猜你喜欢
      • 2013-08-10
      • 2018-07-18
      • 2021-07-28
      • 2015-10-12
      • 2020-03-04
      • 1970-01-01
      • 1970-01-01
      • 2021-11-10
      • 2018-02-28
      相关资源
      最近更新 更多