※当サイトのリンクには広告が含まれています。

【Tkinter】MenuでGUIアプリにメニューを実装する【PythonでGUIアプリ開発】

Tkinter

GUIアプリにメニューを実装する場合は、Menuを使用します。
今回は、メニューの使い方を簡単なサンプルコードをもとに説明します。

スポンサーリンク

準備

まずはウィンドウを作成しましょう。

ウィンドウの作成方法がわからない方は、下の記事を参考にしてください。

スポンサーリンク

Menuで作成したMenuをクリックしてLabelで表示する

サンプルコード

import tkinter as tk

main_win = tk.Tk()
main_win.title("テスト用ウィンドウ")
main_win.geometry("400x300")

def print_AAA():
    label = tk.Label(text="AAA テスト")
    label.pack()

def print_BBB():
    label = tk.Label(text="BBB テスト")
    label.pack()

menu_bar = tk.Menu(main_win)

menu1 = tk.Menu(menu_bar, tearoff=False)
menu1.add_command(label="AAA", command=print_AAA)
menu1.add_command(label="AAA_dummy")
menu_bar.add_cascade(label="XXX", menu=menu1)

menu2 = tk.Menu(menu_bar, tearoff=False)
menu2.add_command(label="BBB", command=print_BBB)
menu2.add_command(label="BBB_dummy")
menu_bar.add_cascade(label="YYY", menu=menu2)

main_win["menu"] = menu_bar

main_win.mainloop()

実行結果

解説

今回は、メニューバーのメニューから『XXX』を選択し、メニューアイテムの『AAA』をクリックするとLabelでテキストを表示するサンプルを実装しました。
またメニュー『YYY』からメニューアイテム『BBB』をクリックすると同様にテキストが表示されます。

では、メニューの実装について解説します。

メニューの実装には、下記の4段階あります。

  1. メニューバーの実装
  2. メニューの実装
  3. メニューアイテムの実装
  4. ウィンドウにメニューを追加

この4つの処理を実装することで、メニューとして機能します。

メニューバーの実装

tkinter.Menu()で作成します。
この時、マスターとしてウィンドウを渡します。
今回のサンプルでは、main_winをマスターとして渡しています。

メニューの実装

メニューバーと同じくtkinter.Menu()で作成します。
メニューバーと違うのは、マスターにメニューバーを指定するところです。

今回のサンプルでは、メニューの切り取りオプションを使用しないため、tearoffをFalse設定にしています。

メニューアイテムの実装

メニューにメニューアイテムを追加します。
その時はメニューで.add_command()を使用します。
メニューアイテムとして表示するテキストはlabelオプションで設定します。
またそのメニューアイテムをクリックしたときのコールバック関数をcommandオプションで設定します。

ここまでの実装が完了すれば、最後はメニューバーにメニューをカスケードして3つの要素がつながるようにします。
カスケードはメニューバーで.add_cascade()を使用します。
この時、メニューバーに表示するメニューのテキストをlabelオプションで設定します。
カスケードするメニューをmenuオプションで設定します。

ウィンドウにメニューを追加

メニューが完成すれば、ウィンドウにメニューバーを追加します。

ウィンドウのmenuに作成したメニューバーを指定します。

Tkinter
スポンサーリンク
toniemonをフォローする

コメント