Python - tkinterのメニューバーでサブメニューを追加する方法

2021年7月21日水曜日

Python tkinter

今回の内容

今回はTkinterのメニューバーにサブメニューを追加する方法を紹介します。
サブメニューを追加するということは、以下のように動作するということです。
Python - tkinterのメニューバーでサブメニューを追加する方法

ソースコード


import tkinter as tk

root = tk.Tk()
root.title("タイトル")

MenuBar = tk.Menu(root)
FileMenu = tk.Menu(MenuBar,tearoff=0)
MenuBar.add_cascade(label="ファイル",menu=FileMenu)
FileMenu.add_command(label="新規")

EncodeMenu = tk.Menu(FileMenu,tearoff=0)
FileMenu.add_cascade(label="文字コード",menu=EncodeMenu)
EncodeMenu.add_command(label="UTF-8")
EncodeMenu.add_command(label="Shift JIS")

root.config(menu=MenuBar)
root.mainloop()

解説!

↓のコードをご覧ください。
MenuBar = tk.Menu(root)
FileMenu = tk.Menu(MenuBar,tearoff=0)
MenuBar.add_cascade(label="ファイル",menu=FileMenu)
FileMenu.add_command(label="新規")

ここまでは大丈夫だと思います。
問題はここからです。以下のコードをご覧ください。
EncodeMenu = tk.Menu(FileMenu,tearoff=0)
FileMenu.add_cascade(label="文字コード",menu=EncodeMenu)
EncodeMenu.add_command(label="UTF-8")
EncodeMenu.add_command(label="Shift JIS")
まず、普通であれば、FileMenu.add_commandで追加しますが、なんとサブメニューを作るためには
FileMenu.add_cancadeを利用します。
ここの操作は、FileMenuをMenuBarだと思ってコードを書くという感じになっています。
言葉で説明するのは難しいので、この記事のソースコードを見て考えてください。



ふと思ったので、メモ代わりに。
お役に立てたらうれしいです。コメント、大歓迎です!

ページ

QooQ