簡體   English   中英

全局名稱“未定義根”,tkinter,python

[英]Global name 'root not defined', tkinter, python

python非常陌生,想創建一個GUI窗口,我打算以后將其用於查詢工具。 我一直在獲取全局名稱root未定義錯誤。 我正在嘗試創建一個具有窗口的用戶界面。 我可能缺少對象概念。 需要一些幫助。 謝謝。 這是我的代碼:

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成為全局變量(不好的主意),或者將root傳遞給GUI類並保存對其的引用。

就像是

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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM