嗨,我创建菜单栏小部件的代码是:
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()
错误是“未定义名称'self'”,并且引用了该行 “ app.config(menu = self.menubar)”
由于self.menubar在 init 方法中,有人知道如何修复它吗?
答案 0 :(得分:1)
您正在尝试在类范围之外使用self
。您还遇到了试图将菜单栏附加到框架的问题。只有顶层窗口(实例为Tk
和Toplevel
)才能与菜单栏关联。
您需要将违规行更改为此:
root.config(menu=app.menubar)