【问题标题】:Python/Tkinter force wait on button clickPython/Tkinter 强制等待按钮单击
【发布时间】:2012-06-04 23:11:44
【问题描述】:

又过了 30 分钟搜索后返回,要么无法理解结果,要么无法找到结果...

我想强制我的应用程序在继续之前等待按钮单击,并以以下代码 sn-p 作为示例:

... 

def crack(self, Filenamelist, forceclick):

        forceclick += 1

        self.crackButton.configure(state='active')

        if forceclick != 2:

            self.crackButton.bind('<ButtonRelease-1>', self.crack(Filenamelist, forceclick))

        self.outputBox.insert(END, '\n' + 'Parsing answer numerator...' + '\n')

...

我基本上是想让它加载函数crack(),加1为forceclick(之前设置为0),将'crack button'更改为活动状态,然后在等待用户的同时绑定按钮挑起束缚。触发绑定后,函数重新加载,加一以强制单击,然后跳过 if 语句。

但是,当我运行程序时,它只是将密钥绑定到破解按钮并自动重新加载该函数以绕过 if 语句......我之前尝试了一个 while 循环,但结果并不好......

有什么建议吗?

【问题讨论】:

    标签: python button tkinter


    【解决方案1】:

    您需要将绑定函数设为 lambda:

    self.crackButton.bind('<ButtonRelease-1>', lambda e: self.crack(Filenamelist, forceclick))
    

    目前它正在调用该函数。

    虽然可能有更好的方法来完成您想要完成的工作,但这应该可以解决您的直接问题。

    【讨论】:

    • 它仍然在跳过该函数,然后当我单击该按钮时,引发异常:Tkinter 回调 Traceback 中的异常(最近一次调用最后一次):文件“/usr/lib/python2.7 /lib-tk/Tkinter.py",第 1410 行,在 call 中 return self.func(*args) TypeError: () 不接受任何参数(1 个给定)
    • @user1435947:很抱歉。一个事件被传递给链接的事件。我已经更正了我的回复。
    • 不过,这可能无法解决您的其他问题。你是如何等待用户点击按钮的?
    猜你喜欢
    • 2019-01-11
    • 1970-01-01
    • 2020-12-26
    • 2018-06-11
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多