【问题标题】:Tkinter Checkbutton and event callback functionTkinter Checkbutton 和事件回调函数
【发布时间】:2013-10-03 15:52:11
【问题描述】:

这是我在 Effbot 网站上找到的一个小代码示例,它与我想要在我的一个程序中执行的操作很接近:

from Tkinter import *

fen =Tk()

class test_Tk_class:
    def __init__(self):
        self.var = IntVar()
        c = Checkbutton(
            fen, text="Enable Tab",
            variable=self.var,
            command=self.cb)
        c.pack()

    def cb(self,event):
        print "variable is", self.var.get()

    a = test_Tk_class()
    fen.mainloop()

但是,此代码不起作用。回调函数 cb 不起作用,因为它需要 2 个参数并且没有给出任何参数。如何指定event 参数?

【问题讨论】:

    标签: python events tkinter


    【解决方案1】:

    在这种情况下,此代码根本不需要event。我只需将其完全删除即可使其正常工作:

    def cb(self):
        print "variable is", self.var.get()
    

    只有将函数绑定到按键或鼠标点击时,才会以这种方式构建代码。但是,对于选中/取消选中一个检查按钮,它不是必需的。

    我不知道在 Effbot 上编写此代码的人想要做什么,但我认为他做得不对。可能是他打错字或者有别的想法。

    【讨论】:

    • 更好的是使用event=None,这样回调将适用于按钮和绑定
    【解决方案2】:

    您可以使用函数的无事件版本。此方法允许您将其用于Checkbutton 命令或事件回调。您可以在下面找到修改后的版本:

    def cb(self,event=None):
        print "variable is", self.var.get()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-12-14
      • 2022-08-18
      • 1970-01-01
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2018-06-20
      相关资源
      最近更新 更多