我该如何修复此 __init__ self.init_window() 错误
How do i fix this __init__ self.init_window() error
我已经开始使用 pyCharm 设置我的 GUI,但是我在编译时遇到了一些错误,因为添加了一个菜单栏。
我删除了所有与菜单栏相关的代码,它可以工作,但没有帮助,因为我想添加一个菜单栏。
from tkinter import *
class Window(Frame):
def __init__(self, master = None) :
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self) :
self.master.title("GUI")
self.pack(fill=BOTH, expand=1)
#quitButton = Button(self, text="Quit", command=self.client_exit)
#quitButton.place(x=0, y=0)
menu = Menu(self.master)
self.master.config(menu=menu)
file = Menu(menu)
file.add_command(label='Exit', command=self.client_exit)
menu.add_cascade(label='File', menu=file)
edit = Menu(menu)
edit.add_command(label='Undo')
menu.add_command(label='Edit', menu=edit)
def client_exit(self) :
exit()
root = Tk()
root.geometry("400x350")
app = Window(root)
首先,您需要将 menu
传递给另一个函数来创建菜单栏。
其次,使用那个新变量而不是 menu
并使用 add_cascad
e 而不是 add_command
。确保 add_cascade
添加了正确的菜单选项。
from tkinter import *
class Window(Frame):
def __init__(self, master = None) :
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self) :
self.master.title("GUI")
self.pack(fill=BOTH, expand=1)
# quitButton = Button(self, text="Quit", command=self.client_exit)
# quitButton.place(x=0, y=0)
menu = Menu(self.master)
# add a new variable called menubar
menubar = Menu(menu)
# pass 'menubar' into your root's config instead of 'menu'
self.master.config(menu=menubar)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Exit", command=self.client_exit)
# call add_cascade on menubar, and pass your filemenu as the menu param
menubar.add_cascade(label="File", menu=filemenu)
edit = Menu(menubar, tearoff=0)
edit.add_command(label="Undo")
# Again, add_cascade from your menubar.
menubar.add_cascade(label="Edit", menu=edit)
def client_exit(self) :
exit()
root = Tk()
root.geometry("400x350")
app = Window(root)
root.mainloop()
我已经开始使用 pyCharm 设置我的 GUI,但是我在编译时遇到了一些错误,因为添加了一个菜单栏。
我删除了所有与菜单栏相关的代码,它可以工作,但没有帮助,因为我想添加一个菜单栏。
from tkinter import *
class Window(Frame):
def __init__(self, master = None) :
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self) :
self.master.title("GUI")
self.pack(fill=BOTH, expand=1)
#quitButton = Button(self, text="Quit", command=self.client_exit)
#quitButton.place(x=0, y=0)
menu = Menu(self.master)
self.master.config(menu=menu)
file = Menu(menu)
file.add_command(label='Exit', command=self.client_exit)
menu.add_cascade(label='File', menu=file)
edit = Menu(menu)
edit.add_command(label='Undo')
menu.add_command(label='Edit', menu=edit)
def client_exit(self) :
exit()
root = Tk()
root.geometry("400x350")
app = Window(root)
首先,您需要将 menu
传递给另一个函数来创建菜单栏。
其次,使用那个新变量而不是 menu
并使用 add_cascad
e 而不是 add_command
。确保 add_cascade
添加了正确的菜单选项。
from tkinter import *
class Window(Frame):
def __init__(self, master = None) :
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self) :
self.master.title("GUI")
self.pack(fill=BOTH, expand=1)
# quitButton = Button(self, text="Quit", command=self.client_exit)
# quitButton.place(x=0, y=0)
menu = Menu(self.master)
# add a new variable called menubar
menubar = Menu(menu)
# pass 'menubar' into your root's config instead of 'menu'
self.master.config(menu=menubar)
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label="Exit", command=self.client_exit)
# call add_cascade on menubar, and pass your filemenu as the menu param
menubar.add_cascade(label="File", menu=filemenu)
edit = Menu(menubar, tearoff=0)
edit.add_command(label="Undo")
# Again, add_cascade from your menubar.
menubar.add_cascade(label="Edit", menu=edit)
def client_exit(self) :
exit()
root = Tk()
root.geometry("400x350")
app = Window(root)
root.mainloop()