全局名称'root not defined',tkinter,python [英] Global name 'root not defined', tkinter, python
本文介绍了全局名称'root not defined',tkinter,python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
python非常新,并且希望创建一个GUI窗口,我打算稍后将其用于查询工具。我不断收到全局名称root未定义的错误。我正在尝试创建一个具有窗口的用户界面。我可能缺少对象概念。需要一些帮助。谢谢。这里是我的代码:
Very new to python and wanted to create a GUI window that i plan to use for a Query tool later. I keep getting global name root not defined error. I am trying to create a user interface that has a window. I probably am missing Object concepts. Need some help. Thanks. Here is my code:
from Tkinter import *
class GUI(Frame):
"""A Graphical User Interface Class for building a GUI Frame.
Attributes:
master :
"""
def __init__(self,master):
Frame.__init__(self,master)
self.grid()
self.menubar()
self.label()
self.onExit()
def menubar(self):
self.menubar = Menu(root)
self.menubar.add_command(label="File")
self.menubar.add_command(label="Exit", command=self.onExit)
root.config(menu=self.menubar)
def label(self):
L0 = Label(text="Use this tool to find the lake location.").grid(row = 0, column = 0)
L1 = Label(text="Lake name :").grid(row = 2)
L2 = Label(text="County name :").grid(row = 3)
E0 = Entry().grid(row = 2, column = 2)
E1 = Entry().grid(row = 3, column = 2)
B0 = Button(text="Search").grid(row = 6, column = 2)
if self.E0 and self.E1==null:
raise RuntimeError('Entry cannot be blank.')
def onExit(self):
self.quit()
def main():
root = Tk()
root.geometry("400x200")
root.title(" Locator (L^3)")
app = GUI(root)
root.mainloop()
if __name__ == '__main__':
main()
推荐答案
def menubar(self):
self.menubar = Menu(root)
self.menubar.add_command(label="File")
self.menubar.add_command(label="Exit", command=self.onExit)
root.config(menu=self.menubar)
root
在这里不存在。你或者需要让 root
一个全局变量(坏主意)或者将根传递给 GUI
类并保存一个引用到它。
root
doesn't exist here. You either need to make root
a global variable (bad idea) or pass root to the GUI
class and save a reference to it.
Something like
def __init__(self, master):
Frame.__init__(self, master)
self.master = master
self.grid()
self.menubar()
self.label()
self.onExit()
def menubar(self):
self.menubar = Menu(self.master)
self.menubar.add_command(label="File")
self.menubar.add_command(label="Exit", command=self.onExit)
self.master.config(menu=self.menubar)
这篇关于全局名称'root not defined',tkinter,python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文