1

我在 ubuntu 中给出这个命令

def gui_c(self):   
    self.button1=Button(app,text="Search",command=self.search_())
    self.button1.grid()

我想search_()通过单击此按钮来发挥作用。但在单击此函数之前,已调用此函数并且未执行 self.button1.grid()。请帮忙。

4

2 回答 2

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
于 2013-03-29T16:19:52.067 回答
1

你只需要写:

def gui_c(self):   
    self.button1=Button(app,text="Search",command=self.search_)
    self.button1.grid()

当我刚接触 Tkinter 时,我也有这个疑问。

于 2013-04-16T08:56:32.547 回答