使用 tkinter 时出现 Nameerror
Namerror while using tkinter
大家好,我创建菜单栏小部件的代码是:
import tkinter as tk
class Asd(tk.Frame):
def __init__(self,master=None):
super().__init__(master)
self.menubar = tk.Menu(self)
self.create_widgets()
def create_widgets(self):
self.filemenu = tk.Menu(self.menubar,tearoff=0)
self.menubar.add_cascade(label="File", menu = self.filemenu)
self.filemenu.add_command(label = "Input-file")
self.filemenu.add_command(label = "Output-file")
root=tk.Tk()
app=Asd(master=root)
app.master.title("Testprogramm")
app.config(menu=self.menubar)
app.mainloop()
错误是 "name 'self' is not defined" 并引用该行
"app.config(menu=self.menubar)"
有谁知道如何修复它,因为 self.menubar 在 init 方法中?
您正在尝试在 class 的范围之外使用 self
。您还遇到了试图将菜单栏附加到框架的问题。只有顶层 windows(Tk
和 Toplevel
的实例)可以有与之关联的菜单栏。
您需要将违规行更改为:
root.config(menu=app.menubar)
大家好,我创建菜单栏小部件的代码是:
import tkinter as tk
class Asd(tk.Frame):
def __init__(self,master=None):
super().__init__(master)
self.menubar = tk.Menu(self)
self.create_widgets()
def create_widgets(self):
self.filemenu = tk.Menu(self.menubar,tearoff=0)
self.menubar.add_cascade(label="File", menu = self.filemenu)
self.filemenu.add_command(label = "Input-file")
self.filemenu.add_command(label = "Output-file")
root=tk.Tk()
app=Asd(master=root)
app.master.title("Testprogramm")
app.config(menu=self.menubar)
app.mainloop()
错误是 "name 'self' is not defined" 并引用该行 "app.config(menu=self.menubar)"
有谁知道如何修复它,因为 self.menubar 在 init 方法中?
您正在尝试在 class 的范围之外使用 self
。您还遇到了试图将菜单栏附加到框架的问题。只有顶层 windows(Tk
和 Toplevel
的实例)可以有与之关联的菜单栏。
您需要将违规行更改为:
root.config(menu=app.menubar)