Tkinter can';t在窗口上显示自定义菜单
我有一个自定义菜单类继承自Tkinter can';t在窗口上显示自定义菜单,tkinter,Tkinter,我有一个自定义菜单类继承自Tkinter.menu。我在根窗口中使用它,如 这: 有谁能告诉我出了什么问题吗?假设您的customMenu类正确地继承了Tkinter菜单类,那么您向我们展示的内容非常好。下面是一个完整的工作示例: import Tkinter as tk class CustomMenu(tk.Menu): def __init__(self, root, *args, **kwargs): tk.Menu.__init__(self, root, *
Tkinter.menu
。我在根窗口中使用它,如这:
有谁能告诉我出了什么问题吗?假设您的
customMenu
类正确地继承了Tkinter菜单
类,那么您向我们展示的内容非常好。下面是一个完整的工作示例:
import Tkinter as tk
class CustomMenu(tk.Menu):
def __init__(self, root, *args, **kwargs):
tk.Menu.__init__(self, root, *args, **kwargs)
self.root = root
self.file_menu = tk.Menu(self, tearoff=False)
self.file_menu.add_command(label="Exit", command=root.on_exit)
self.add_cascade(label="File", underline=0, menu=self.file_menu)
class ExampleView(tk.Frame):
def __init__(self, root):
tk.Frame.__init__(self, root)
root.configure(menu=CustomMenu(root))
l = tk.Label(self, text="your widgets go here...", anchor="c")
l.pack(side="top", fill="both", expand=True)
class Controller(tk.Tk):
def on_exit(self):
self.destroy()
if __name__=='__main__':
root = Controller()
view = ExampleView(root)
view.pack(side="top", fill="both", expand=True)
root.mainloop()
乍一看没有什么不对。你得到了什么?你期待什么?(注意:Python风格主张使用CapWords类名称)为什么您认为有什么不对?你有错误吗?如果是这样,您会得到什么错误?如果它没有崩溃,它在做什么?
import Tkinter as tk
class CustomMenu(tk.Menu):
def __init__(self, root, *args, **kwargs):
tk.Menu.__init__(self, root, *args, **kwargs)
self.root = root
self.file_menu = tk.Menu(self, tearoff=False)
self.file_menu.add_command(label="Exit", command=root.on_exit)
self.add_cascade(label="File", underline=0, menu=self.file_menu)
class ExampleView(tk.Frame):
def __init__(self, root):
tk.Frame.__init__(self, root)
root.configure(menu=CustomMenu(root))
l = tk.Label(self, text="your widgets go here...", anchor="c")
l.pack(side="top", fill="both", expand=True)
class Controller(tk.Tk):
def on_exit(self):
self.destroy()
if __name__=='__main__':
root = Controller()
view = ExampleView(root)
view.pack(side="top", fill="both", expand=True)
root.mainloop()