-1

から継承するカスタムメニュークラスがありますTkinter.Menu。ルートウィンドウで次のように使用します

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

誰かが私に何が悪いのか教えてもらえますか?

4

1 に答える 1

1

あなたのcustomMenuクラスがTkinterMenuクラスから適切に継承していると仮定すると、あなたが私たちに示したことは完全に問題ありません。完全に機能する例を次に示します。

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()
于 2012-11-07T17:04:47.483 に答える