【发布时间】:2013-12-03 16:35:42
【问题描述】:
我正在尝试使用 Tkinter 在 Python 中编写一个带有菜单栏的简单 OOP 窗口。我可以用程序编程做我想做的事,但我在试图把它包装在类中时遇到了麻烦。这是一个小片段:
from Tkinter import *
class App(Frame):
def __init__(self, parent):
Frame.__init__(self, parent, background="white")
self.parent = parent
self.initUI()
def initUI(self):
self.parent.title("Example")
self.pack(fill=BOTH, expand = 1)
""" Menu Bar """
self.menubar = Menu(self)
self.filemenu = Menu(self.menubar, tearoff=0)
self.filemenu.add_command(label = "Open", command = None)
self.filemenu.add_command(label = "Save", command = None)
self.filemenu.add_command(label = "Save As", command = None)
self.filemenu.add_command(label = "Close", command = None)
self.filemenu.add_separator()
self.filemenu.add_command(label = "Exit", command = None)
self.menubar.add_cascade(label = 'File', menu = self.filemenu)
self.config(menu = self.menubar)
def main():
root = Tk()
root.geometry("800x600+300+300")
app = App(root)
root.mainloop()
if __name__ == '__main__':
main()
当我运行这个时,我得到这个错误:
Traceback (most recent call last):
File "C:/Users/xx/PycharmProjects/GUIS/layout.py", line 39, in <module>
main()
File "C:/Users/xx/PycharmProjects/GUIS/layout.py", line 35, in main
app = App(root)
File "C:/Users/xx/PycharmProjects/GUIS/layout.py", line 8, in __init__
self.initUI()
File "C:/Users/xx/PycharmProjects/GUIS/layout.py", line 28, in initUI
self.config(menu = self.menubar)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1262, in configure
return self._configure('configure', cnf, kw)
File "C:\Python27\lib\lib-tk\Tkinter.py", line 1253, in _configure
self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))
_tkinter.TclError: unknown option "-menu"
有人愿意帮助菜鸟吗?
【问题讨论】: