【发布时间】:2019-04-06 15:39:30
【问题描述】:
我正在尝试设置一个带有按钮和标签等的 tkinter 窗口。我添加的按钮是为了调用一个函数,但它不能正常工作。
函数包含行 x=entry1.get() 但它是说 entry1 没有定义(尽管它在程序的前面定义了)。 我很困惑,因为我在 youtube 频道上看到了这项工作。
这不是所有的代码(我已经完成了根的工作)
def game():
x=entry1.get()
label=Label(root,textvariable=x)
label.grid(row=5,column=2)
def mainwindow():
root=Tk()
root.title("Typing Game")
root.geometry("1920x1080")
entry1=Entry(root)
entry1.grid(row=2,column=4)
button=Button(root,text="Hit this button when done",command=game)
button.grid(row=1,column=4)
root.mainloop()
mainwindow()
X 应该最终成为他们用户输入的文本,但它只是说 entry1 在尝试执行“x=entry1.get()”行时没有定义
【问题讨论】:
-
请发布工作代码示例,以便我们重现您的错误。您发布的这段代码应该在第 3 行出现错误,说明名称“游戏”未定义。
-
def game(): x=entry1.get() label=Label(root,textvariable=x) label.grid(row=5,column=2) def mainwindow(): root=Tk () root.title("打字游戏") root.geometry("1920x1080") entry1=Entry(root) entry1.grid(row=2,column=4) button=Button(root,text="点击这个按钮时完成",command=game) button.grid(row=1,column=4) root.mainloop() mainwindow()
-
我已经更新了帖子代码
-
您在函数
mainwindow()内部定义entry1,并且该变量将在函数结束时被垃圾回收。因此,当函数game()尝试调用该变量时,它不再存在。 -
那么我在哪里定义 entry1?