Tkinter を使用して Python プログラムのランチャーを作成しようとしています。execfile 関数を使用したところ、幸いにもターゲット GUI が開きました。ただし、どのボタンも機能せず、ほとんどの関数が参照するグローバル変数が定義されていないと表示されます。
プログラムを起動するコード:
def launch():
execfile("gui.py")
それはうまくいきます。ターゲット プログラムの基本コード:
from Tkinter import *
gui = Tk()
gui.title("This is a GUI")
編集: ボタンの例:
def buttonWin():
buttonWindow = Toplevel(gui)
button = Button(buttonWindow, text = "Button", width = 10, command = None)
button.pack()
トップレベルの「gui」変数を参照すると、エラーが発生します。Launcher スクリプトで 'gui' 変数を定義しようとしましたが、Launcher ではなくターゲット スクリプトが最初に開くだけでした。
gui = Tk()
launcher = Tk()
launcher.title("Launcher")
def launch():
return execfile("gui.py")
launchButton = Button(launcher, text = "Launch", width = 10, command = launch)
このプログラムのボタンの 1 つを押してみると、NameError が発生します: $NameError: Global variable 'gui' is not defined$ また、これは Python 2.7.5 にあります。回答してくれた人に感謝します。コード ブロックのエラーについては申し訳ありません。私は新しいです。