2011-12-30 8 views
0

私はTkinterの新機能ですが、より複雑なGUIをスクリプトに入れようとしています。だからこれはかなり基本的でなければならないが、私は何がうまくいかないのか理解できない。Tkinterのmainloop()ボタン機能を自動で呼び出す

私が欲しいのは、データ入力オプションがたくさんあり、一番下は終了ボタンと送信ボタンです。 mainloop()や何か他のものは、ユーザの入力なしでボタンのコマンドを実行し続けているようです。したがって、終了ボタンのため、アプレットが表示される前に破棄されます。メインループ()の外側にボタンを置くと、問題はありませんが、もちろん意味をなさないので、ボタンが表示されません。

button_exit = Tkinter.Button(root, text = 'Exit', command = root.destroy()) 
button_exit.grid(row=3, column=0, pady=10, sticky='E') 
button_query = Tkinter.Button(root, text = 'Query', command = intQuery()) 
button_query.grid(row=3, column=1, padx=10, sticky='E') 

root.mainloop() 

これは基本的にコードの問題領域です。残りはデータ入力フィールドだけであり、スクリプトのほとんどはまだ書かれていません。

ありがとうございます。

答えて

3

変更

command = root.destroy() 

command = root.destroy 

の理由はこれです:括弧は、メソッドを呼び出し、メソッドの引数はがメソッドに渡される前 を評価されます。これはあなたのプログラムが早すぎるために退出する理由です。

括弧なしでは、このメソッドをオブジェクトとして参照しています。このオブジェクトは、Tkinter.Buttonに渡し、保存し、後でボタンを押したときに呼び出すことができます。

command = intQuery()と同じです。

+0

これは正確に+1されました – vdbuilder

+0

ありがとうございました!それは理にかなっていますが、決してそれを考えなかったでしょう。完璧に働いた。 – wowohweewah

関連する問題