我有一个设置tkinter窗口并尝试制作标题标签的python脚本。当我自己运行此脚本时,它可以工作。 我还有另一个脚本,它具有自己的tkinter窗口,该窗口具有一个调用其他脚本的按钮。当我通过该按钮调用其他脚本时,仍然会出现一个新窗口和标签框架,但其中不包含任何文本。
我认为这与在两个脚本中使用相同的变量“ title”有关,但是我简化了第一个tkinter窗口,使其除了按钮外没有其他任何东西。
import Tkinter as tk
def build_title_widget():
title2 = tk.StringVar()
title2_label = tk.Label(sub, textvariable = title2, padx = 10, pady = 10,
fg = 'Midnight Blue', bg = 'white')
title2.set('Hello World!')
title2_label['relief'] = 'ridge'
title2_label.config(font = ("Calibri", 44))
title2_label.pack()
def make_title_window():
global sub
sub = tk.Tk()
build_title_widget()
sub.mainloop()
make_title_window()
^^^^^^ ________此脚本在其自身上起作用____________ ^^^^^^^
VVVVVV ___调用第二个脚本____VVVVV时此脚本不起作用
#my_first_script.py
import Tkinter as tk
top = tk.Tk()
def run_other_script():
my_second_script.make_title_window()
def build_buttons(): #sets up frame for button widgets
button_frame = tk.Frame(top, padx=10, pady=10)
button_frame.pack(side = "top")
call_script_2 = tk.Button(top, text = "run other script", command = run_other_script)
call_script_2.pack()
build_buttons()
top.mainloop()
#my_2nd_script.py
import Tkinter as tk
def build_title_widget():
title2 = tk.StringVar()
title2_label = tk.Label(sub, textvariable = title2, padx = 10, pady = 10,
fg = 'Midnight Blue', bg = 'white')
title2.set('Hello World!')
title2_label['relief'] = 'ridge'
title2_label.config(font = ("Calibri", 44))
title2_label.pack()
def make_title_window():
global sub
sub = tk.Tk()
build_title_widget()
sub.mainloop()
我认为两种配置都应显示“ Hello World!”。在Tkinter窗口标签中。但是,当第二个脚本被第一个脚本调用时,我只会得到一个空白标签。