Tkinter ウィンドウにメニューをつける。

  • まずは、簡単なメニュー。



#簡単なメニュー
# -*- coding: utf-8 -*-

from Tkinter import *

#コールバック関数を定義しておく。
def callback():
    print 'called'

#root ウィンドウを作る。
root = Tk()

#メニューオブジェクトを作る。
menu_ROOT = Menu(root)

#root ウィンドウの menu に前出の
#メニューオブジェクトを設定。
root.configure(menu = menu_ROOT)

#メニューオブジェクトに'FILE' というメニューを
#追加する。
menu_ROOT.add_command(label='FILE',command=callback)

#メニューオブジェクトに'FILE' というメニューを
#追加する。
menu_ROOT.add_command(label='EDIT',command=callback)

root.mainloop()
  • カスケードメニューにしてみる。






#カスケードメニューにしてみる。
# -*- coding: utf-8 -*-

from Tkinter import *

#コールバック関数を定義しておく。
def callback():
    print 'called'

#root ウィンドウを作る。
root = Tk()

#メニューオブジェクトを作る。
menu_ROOT = Menu(root)

#root ウィンドウの menu に前出の
#メニューオブジェクトを設定。
root.configure(menu = menu_ROOT)

#FILE メニューを作る。親widgetは menu_ROOT
menu_FILE = Menu(menu_ROOT)

#'FILE'というラベルでカスケードメニューをrootメニューに追加。
#alt+f でアクセス出来るように F にアンダーライン追加。
menu_ROOT.add_cascade(label='FILE',menu=menu_FILE,underline=0)

#FILE カスケードメニューに'New Window' という項目を追加。
#alt+n でアクセス出来るように underline を追加。
menu_FILE.add_command(label='New Window',under=0,command=callback)

#FILE カスケードメニューに'Open' という項目を追加。
#alt+o でアクセスできるように underline を追加。
menu_FILE.add_command(label='Open',under=0,command=callback)

root.mainloop()
  • サブメニューを作ってみる。












# -*- coding: utf-8 -*-

from Tkinter import *

#コールバック関数を定義しておく。
def callback():
    print 'called'

#root ウィンドウを作る。
root = Tk()
frame = Frame(root,width=300,height=200)
frame.pack()

menu_top = Menu(root)
menu_file = Menu(menu_top)
menu_open = Menu(menu_top)

root.configure(menu=menu_top)

menu_top.add_cascade (label='FILE(F)',menu=menu_file,under=5)
menu_top.add_command(label=u'ヘルプ(H)',underline=4,command=callback)

menu_file.add_command(label='New Window(N)',under=11)
menu_file.add_cascade(label='Open(O)',under=5,menu=menu_open)

menu_open.add_command(label='Local File(L)',under=11)
menu_open.add_command(label='Network(N)',under=8)

root.mainloop()
  • Menu(option...) の tearoff オプションを

tearoff=False もしくは tearoff=1 とするとはぎ取りバー無しになる。
















#カスケードメニューにしてみる。& tearoff オプションをいじる。
# -*- coding: utf-8 -*-

from Tkinter import *

#コールバック関数を定義しておく。
def callback():
    print 'called'

#root ウィンドウを作る。
root = Tk()

#メニューオブジェクトを作る。
menu_ROOT = Menu(root)

#root ウィンドウの menu に前出の
#メニューオブジェクトを設定。
root.configure(menu = menu_ROOT)

#FILE メニューを作る。親widgetは menu_ROOT
#tearoff=False もしくは tearoff=1 とするとはぎ取りバー無しになる。
menu_FILE = Menu(menu_ROOT,tearoff=False)

#'FILE'というラベルでカスケードメニューをrootメニューに追加。
#alt+f でアクセス出来るように F にアンダーライン追加。
menu_ROOT.add_cascade(label='FILE',menu=menu_FILE,underline=0)

#FILE カスケードメニューに'New Window' という項目を追加。
#alt+n でアクセス出来るように underline を追加。
menu_FILE.add_command(label='New Window',under=0,command=callback)

root.mainloop()