2017-03-03 4 views
-1

ボタンをクリックしたときに実行される別のファイルをインポートしようとしています。だから私は持っています:Python/Tkinter - ファイルや関数を最初に実行することなくインポートする方法は?

from tkinter import * 
import file 

window = Tk() 
button = Button(window, text='GO', command=file.function()) 
button.grid(column=1, row=1) 

これは、ウィンドウが初期化される前にファイルを実行します。私も試しました:

from file import function 
button = Button(window, text='GO', command=function()) 

でも同じことをします。ボタンをクリックするとどちらも実行されません。ファイルや関数をどのようにインポートするのですか?ボタンをクリックしたときにそれらを実行するだけですか?私はPython 3.5を使用しています。 ありがとう

答えて

2

command=file.function()の代わりにcommand=file.functionを実行する必要があります。

2番目のプログラムは、プログラムの開始時に関数を呼び出します。最初のケースでは、ボタンがクリックされたときに関数が呼び出されます。

+0

ボタンは今動作しますが、ファイルはインポート時に実行されますか? – StevenH

+0

ファイル内のどこにでも関数を呼び出さないようにしてください。また、 'if __name__ ==" __main __ ":'の内部でなければ、 'file.py'自体で関数を呼び出さないようにしてください。 'import file'を実行することで、' if'を除いて、 'file.py'のすべてのコードが実行されます。私はそれについてさらに検索することをお勧めします。 – yper

+0

パーフェクト、ありがとう – StevenH

関連する問題