from tkinter import *
def create_main_window():
global main_window
main_window = Toplevel()
main_window.update()
entrance_window = Tk()
first_text_label = Label(entrance_window, text="you are in:").grid(row=0, column=0)
place_entry = Entry(entrance_window).grid(row=0, column=1)
submit_button = Button(entrance_window, text="Submit", command=create_main_window).grid(row=1, column=0, columnspan=2)
Label(main_window, text=f"{place_entry}").pack()
entrance_window.mainloop()
程序应打开一个新窗口,其中包含第一个窗口中输入框中的文本,但如果我写入,则显示None
Label(main_window, text=f"{place_entry}").pack()
在create_main_window中,或者如果我在按钮代码之后编写main_window,它会给我一个错误,说main_window没有定义。
有人能帮忙吗?
3条答案
按热度按时间jqjz2hbq1#
试试这个:
我将标签创建移到了
create_main_window
中。另外请注意,使用var = a().b()
时,会将b()
返回的内容保存到var
中。这就是为什么当您使用var = Entry(...).pack(...)
时,var
始终为None
。kjthegm62#
这是因为你试图给一个不存在的对象添加一个Label,把Label函数移到create_main_window()函数中,如下所示:
t9aqgxwy3#
从未使用过
global
。不要使用通配符from tkinter import *
要查看
Label
小工具,必须将其放置在create_main_window() function
内。摘录:
截图: