pythonでGUIアプリを使っていると、メニューバーを作成する機会が出てきます
この記事では、pythonのtkinterを使って、メニューバーを作成する方法について解説していきたいと思います
入れ子構造のメニューバー作成方法については、ネット上になかなか転がっていないので、参考になるかと思います
この記事でわかること
- tkinterでメニューバーを作成する方法
- tkinterで入れ子構造のメニューバーを作る方法
- tkinterの使い方を知る
Contents
pythonのtkinterでメニューバーを作成する
pythonのtkinterモジュールを使用することで、メニューバーを作成することができます
GUIアプリでは、メニューバーは必須となります
イメージとしては、以下のようなものを作成していきます
ボタンクリック時のイベントを定義する
それぞれのメニューには、イベントを付与することができます
例えば、「ファイルを選択する」を選んだ時には、ファイルダイアログが展開されるように定義をしておくことができます
イベントの定義は以下のように定義をします
# メニューから呼び出される関数
# passに実行したい内容のコードを記載する
def open_file():
pass
def close_disp():
pass
pythonのtkinterでメニューバーを作成するサンプルコード
実際にtkinterのサンプルコードを使って、コードを書いていきましょう
import tkinter as tk
#ウインド画面の作成
root=tk.Tk()
# メニューから呼び出される関数
def open_file():
pass
def close_disp():
pass
# menubarの大元(コンテナ)の作成と設置
menubar = tk.Menu(root)
root.config(menu=menubar)
#メニューに親メニュー(ファイル)を作成する
menu_file = tk.Menu(root)
menubar.add_cascade(label='ファイル', menu=menu_file)
#親メニューに子メニュー(開く・閉じる)を追加する
menu_file.add_command(label='開く', command=open_file)
menu_file.add_command(label='閉じる', command=close_disp)
#画面の表示
root.mainloop()
上記のコードで以下のようなメニューバーが作成できるかと思います
メニューバーの作成
メニューバーの作成は以下の部分で行なっています
#メニューに親メニュー(ファイル)を作成する
menu_file = tk.Menu(root)
menubar.add_cascade(label='ファイル', menu=menu_file)
さらにメニューバーを増やすこともできます
import tkinter as tk
#ウインド画面の作成
root=tk.Tk()
# メニューから呼び出される関数
def open_file():
pass
def close_disp():
pass
# menubarの大元(コンテナ)の作成と設置
menubar = tk.Menu(root)
root.config(menu=menubar)
#メニューに親メニュー(ファイル)を作成する
menu_file = tk.Menu(root)
menubar.add_cascade(label='ファイル', menu=menu_file)
# menubarを親としてヘルプメニューを作成と表示
help_menu = tk.Menu(menubar, tearoff=0)
menubar.add_cascade(label='ヘルプ', menu=help_menu)
#親メニューに子メニュー(開く・閉じる)を追加する
menu_file.add_command(label='開く', command=open_file)
menu_file.add_command(label='閉じる', command=close_disp)
#画面の表示
root.mainloop()
入れ子構造のメニューバーを作成する
実際には、入れ子構造になっているメニューバーがほとんどなので、入れ子構造のメニューバーも作成していきたいと思います
import tkinter as tk
#ウインド画面の作成
root=tk.Tk()
# メニューから呼び出される関数
def open_file():
pass
def close_disp():
pass
# menubarの大元(コンテナ)の作成と設置
menubar = tk.Menu(root)
root.config(menu=menubar)
#メニューに親メニュー(ファイル)を作成する
menu_file = tk.Menu(root)
menubar.add_cascade(label='ファイル', menu=menu_file)
# menubarを親としてヘルプメニューを作成と表示
help_menu = tk.Menu(menubar, tearoff=0)
menubar.add_cascade(label='ヘルプ', menu=help_menu)
#親メニューに子メニュー(開く・閉じる)を追加する
menu_file.add_command(label='開く', command=open_file)
menu_file.add_command(label='閉じる', command=close_disp)
#入れ子構造のメニューバー
cascade_a_1 = tk.Menu(menu_file,tearoff=False)
menu_file.add_cascade(label="開く",menu=cascade_a_1)
cascade_a_1.add_command(label="新規ファイルを開く",command=open_file)
cascade_a_1.add_command(label="既存ファイルを開く",command=open_file)
cascade_a_1.add_command(label="デスクトップから開く",command=open_file)
#画面の表示
root.mainloop()
これで入れ子構造のメニューバーを作成することができました
あらかじめイベントを複数定義しておき、「command」の内容を変更しておくことで、それぞれ、異なった挙動をさせることができます
python初心者がプログラミングで収益を出す方法
python初心者がプログラミングで収益を出すには、以下の方法があります
- note
- ココナラ
- ブログ
- オンラインサロン
- コンサル
- アフィリエイト
上記の方法に加え、SNSを活用することで、収益化は一気に速くなります
python初心者におすすめのプログラミングスクール
書籍を読んでもわからない場合には、プログラミングスクールに通うのも一つの方法です
以下はpythonを学ぶことができるプログラミングスクールです
どれも無料体験がありますが、それぞれの特徴は、
詳しい説明は以下の記事でしていますので、ぜひ参考にしてみてください