2012-11-05 20 views
-1

我有一個自定義菜單類繼承Tkinter.Menu。我用它在根窗口像
這樣:無法顯示窗口上的自定義菜單

root = Tk() 
menu = customMenu(root) 
root.config(menu = menu) 
mainloop() 

任何人都可以告訴我,什麼是錯的,請。

+0

沒有什麼是一見鍾情。你得到了什麼?你期望什麼? (注意:CapWords類名稱的Python風格支持者) – FabienAndre

+0

爲什麼你認爲什麼是錯的?你有錯誤嗎?如果是這樣,你會得到什麼錯誤?如果它沒有崩潰,它在做什麼? –

回答

1

你給我們展示的是非常好的,假設你的customMenu類正確地繼承了Tkinter Menu類。這是一個完整的工作示例:

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() 
+0

謝謝你的回答,我修好了 – Weizhi

相關問題