メニューの利用方法
tkinter で、基本的なメニューバーを利用する方法について説明します。
ここで作成するメニューは次の通りです。Exit メニューのコマンドには quit が割り当てられていますが、その他はコンソールに文字を表示するだけです。
コードは次のようになります。
from tkinter import *
from tkinter import ttk
def foo():
print('menu1!')
def bar():
print('menu2!')
def baz():
print('help!')
if __name__ == '__main__':
root = Tk()
menubar = Menu(root)
# File Menu
filemenu = Menu(menubar, tearoff=0)
filemenu.add_command(label='Menu1', command=foo)
filemenu.add_command(label='Menu2', command=bar)
filemenu.add_separator()
filemenu.add_command(label='Exit', command=quit)
# Help
helpmenu = Menu(menubar, tearoff=0)
helpmenu.add_command(label='Help', command=baz)
# Add
menubar.add_cascade(label='File', menu=filemenu)
menubar.add_cascade(label='Help', menu=helpmenu)
root.config(menu=menubar)
root.title('Menu1')
root.minsize(300,150)
root.rowconfigure(0, weight=1)
root.columnconfigure(0, weight=1)
root.grid()
frame1 = ttk.Frame(root)
frame1.rowconfigure(0, weight=1)
frame1.columnconfigure(0,weight=1)
frame1.grid(sticky=(N,E,S,W))
root.mainloop()
Menu ウィジェットを作成する時には、tearoff オプションを False (または 0) に設定して作成します。これをしないと、 メニューに切り取り線が表示されて、切り取り可能なメニューになります。
tearoff を指定しない場合のデフォルトは次のようになります。
ルートを親として Menu を作成し、それに対してそれぞれのメニュー階層を構築していきます。
上のコードでは menubar という変数が Menu ウィジェットのトップレベルメニューとなり、それを親として、 Menu ウィジェットを作成することで、そこにぶら下がるプルダウンメニューを作成できます。
それぞれのプルダウンの中にメニュー項目を作成するには、add_command メソッドを呼び、 ラベルとコマンドを指定します。