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 に答える