Python 3.x 名称';主窗口';没有定义

Python 3.x 名称';主窗口';没有定义,python-3.x,tkinter,Python 3.x,Tkinter,程序应该打开一个新窗口,其中包含第一个窗口中输入框中的文本,但如果我写入,它会显示None 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="y

程序应该打开一个新窗口,其中包含第一个窗口中输入框中的文本,但如果我写入,它会显示
None

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()
在create_main_窗口中,或者如果我在按钮代码之后编写,它会给我一个错误,告诉我main_窗口没有定义


有人能帮忙吗?

这是因为您试图向不存在的对象添加标签。将Label函数移动到create_main_window()函数,如下所示:

Label(main_window, text=f"{place_entry}").pack()
试试这个:

从tkinter导入*
def create_主窗口():
全局主窗口
主窗口=顶层(主窗口)
label=label(主窗口,text=f“{place\u entry.get()}”)
label.pack()
#main_window.update()#这没用
入口窗户=Tk()
第一个文本标签=标签(入口窗口,text=“您在:”)
第一个文本标签网格(行=0,列=0)
地点\入口=入口(入口\窗口)
place_entry.grid(行=0,列=1)
提交按钮=按钮(入口窗口,text=“提交”,命令=创建主窗口)
提交按钮网格(行=1,列=0,列span=2)
入口_window.mainloop()

我将标签创建移到了
create\u主窗口中
。另外请注意,使用
var=a().b()
,保存
b()
var
中返回的内容。这就是为什么当您使用
var=Entry(…).pack(…)
时,
var
总是
None

您不需要
全局主窗口、入口窗口中的
入口窗口。另外,
place\u条目
将始终为
None
。还有,你到底想用
f“{place_entry}”
做什么?我只是在编辑OP的代码,这样它就不会抛出错误,但我不确定某些脚本的原因。在编写答案时,请确保所有可能的错误都已修复。
from tkinter import *

def create_main_window():
    global main_window, entrance_window
    main_window = Toplevel()
    place_entry = Entry(entrance_window).grid(row=0, column=1)
    Label(main_window, text=f"{place_entry}").pack()
    main_window.update()

entrance_window = Tk()
first_text_label = Label(entrance_window, text="you are in:").grid(row=0, column=0)

submit_button = Button(entrance_window, text="Submit", command=create_main_window).grid(row=1, column=0, columnspan=2)
entrance_window.mainloop()