【Python】メニューバーを作成する(Tkinter)

スポンサーリンク

PythonのGUI メニューバーについて。

この記事の内容はコチラです

  • メニューバーを作成する
  • tkinterの使い方を知る

今回はtkinterモジュールを使ってメニューバーを作成する方法を解説します。

Pythonでメニューバーを作成する(Tkinter)

PythonではTkinterモジュールを使ってメニューバーを作成することができます。GUIアプリケーションでメニューバーはよく使われますね。

メニューバーに開く・閉じるを追加する

# メニューから呼び出される関数
def open_file():
    pass
def close_disp():
    pass
import tkinter 

#画面作成 
tki = tkinter.Tk() 

#メニューバー作成 
men = tkinter.Menu(tki) 

#メニューバーを画面にセット 
tki.config(menu=men) 

#メニューに親メニュー(ファイル)を作成する 
menu_file = tkinter.Menu(tki) 
men.add_cascade(label='ファイル', menu=menu_file) 

#親メニューに子メニュー(開く・閉じる)を追加する 
menu_file.add_command(label='開く', command=open_file) 
menu_file.add_separator() 
menu_file.add_command(label='閉じる', command=close_disp)

Pythonで「tkinter」を使って簡単にメニューバーを作成することができました。上記のコードを解説していきます。

イベント関数を事前に定義する

メニューに「ファイル」→「開く」「閉じる」を追加します。この「開く」「閉じる」をおしたときに呼び出されるイベント関数を作成します。

# メニューから呼び出される関数
def open_file():
    pass
def close_disp():
    pass

「開く」→open_file関数、「閉じる」→close_disp関数を呼び出します。ここではメニューの作成にフォーカスするため、関数の中身はカラにしておきます。必要な処理を追加してください。

Tkinterでメニューバーを作成する

import tkinter 

#画面作成 
tki = tkinter.Tk()

Pythonでは「tkinter」を使うと簡単にメニューバーを作成することができます。

tkinterはPythonのGUIを作成するモジュールです。詳細はこちらを参照してください。

#メニューバー作成 
men = tkinter.Menu(tki) 

#メニューバーを画面にセット 
tki.config(menu=men)

メニューバーは「tkinter.Menu」で作成します。このメニューバーを画面に定義するのが「tki.config(menu=men)」です。

import tkinter 

#画面作成 
tki = tkinter.Tk() 

#メニューバー作成 
men = tkinter.Menu(tki) 

#メニューバーを画面にセット 
tki.config(menu=men) 

#メニューに親メニュー(ファイル)を作成する 
menu_file = tkinter.Menu(tki) 
men.add_cascade(label='ファイル', menu=menu_file) 

#親メニューに子メニュー(開く・閉じる)を追加する 
menu_file.add_command(label='開く', command=open_file) 
menu_file.add_separator() 
menu_file.add_command(label='閉じる', command=close_disp)

Pythonで「tkinter」を使って簡単にメニューバーを作成することができました。上記のコードを解説していきま

メニューを追加する

画面にメニューバーを追加できたので、次にメニューバーの中身を作成します。

#メニューに親メニュー(ファイル)を作成する 
menu_file = tkinter.Menu(tki) 
men.add_cascade(label='ファイル', menu=menu_file)

「tkinter.Menu(tki)」でメニューの親要素を作成します。親要素とはメニューバーに表示される第一階層のメニューです。

ここでは「ファイル」を追加しました。メニュー要素に追加するのは「add_cascade」を使います。要素の名前は「label」で定義します。

これでメニューバーの親要素に「ファイル」を追加することができました。

#親メニューに子メニュー(開く・閉じる)を追加する 
menu_file.add_command(label='開く', command=open_file) 
menu_file.add_separator() 
menu_file.add_command(label='閉じる', command=close_disp)

次に子要素を作成します。子要素とは「ファイル」がクリックされたときに表示されるメニューです。

先ほど作成した親要素の変数「menu_file」に「add_command」を使って子要素を追加します。子要素の名前は「label」で定義します。

そして子要素がクリックされるときに、発生させるイベントは「commnd」で定義します。ここでは事前に定義した関数を呼び出しています。

このように「tkinter.Menu」を使うとPythonで簡単にメニューバーを作成することができます。

参考ページhttps://docs.python.jp/3/library/tk.html

以上、Pythonで「Tkinter」を使ってメニューバーを作成する方法でした。

コメント