3

このコードを実行するたびにセグメンテーション違反が発生します:

from Tkinter import *
def gui():  
        root=Tk()
        menubar=Menu(root)
        filemenu=Menu(menubar,tearoff=0)
        filemenu.add_command(label='New',command=gui)
        filemenu.add_command(label='Close',command=root.quit)
        menubar.add_cascade(label='File',menu=filemenu)
        helpmenu=Menu(menubar,tearoff=1)
        helpmenu.add_separator()
        helpmenu.add_command(label="Help")#ajouter commande
        helpmenu.add_command(label='About...')#ajouter commande
        helpmenu.add_cascade(label='Help',menu=helpmenu)
        root.mainloop()

gui()

なにか提案を ?私は何をすべきか ?前もって感謝します。MFF

4

1 に答える 1

5

セグメンテーション違反は、次の原因で発生します。

helpmenu.add_cascade(label='Help',menu=helpmenu)

ドキュメントをざっと見てみると、なぜ問題が発生するのかが完全に理解できます。カスケードを追加すると「階層的なメニュー項目が追加されます」。helpmenu 内のメニューとして helpmenu を追加しています。

ここであなたが言いたいのは

menubar.add_cascade(label="Help", menu=helpmenu)
于 2012-04-07T16:45:04.193 に答える