ubuntu中的Python Tkinter

use*_*833 1 tkinter

我在ubuntu中发出这个命令

def gui_c(self):   
    self.button1=Button(app,text="Search",command=self.search_())
    self.button1.grid()
Run Code Online (Sandbox Code Playgroud)

我希望search_()通过单击此按钮来运行.但是在单击此函数之前已经调用并且不执行self.button1.grid().请帮忙.

RFM*_*FMc 5

要传递函数而不是执行它,请删除()括号,因此请使用command=self.search_而不是command=self.search_()

这是python引用函数本身的方式.例如:

>>> def foo():
...     print("Spam eggs bacon and spam")
... 
>>> foo()
Spam eggs bacon and spam

>>> foo
<function foo at 0x7f4dac4ec2a8>

>>> a = foo
>>> a
<function foo at 0x7f4dac4ec2a8>

>>> a()
Spam eggs bacon and spam
Run Code Online (Sandbox Code Playgroud)