Comboboxウィジェットを使ってみよう
今回はComboboxウィジェットを使って、コンボボックスを表示してみましょう。
コンボボックスとは、リストボックスと1行のテキスト入力を組み合わせたGUI部品です。
Comboboxウィジェットの書式
Comboboxウィジェットの使い方は、以下の通りです。
なお、Comboboxウィジェットを使うには、ttkをインポートする必要があります。
オブジェクト名 = ttk.Combobox(master=親ウィジェット, オプション)
第1引数はComboboxウィジェットの親ウィジェットを指定します。
また、masterは省略することができます。
Comboboxウィジェットで使うオプション
Comboboxウィジェットで使う主なオプションは、以下の通りです。
オプション名 | 内容 |
height | コンボボックスに表示される行数 |
width | コンボボックスの1行の文字数。デフォルトは20 |
values | ドロップダウンリストに表示する値のリスト |
textvariable | 選択した値を参照するtkinter変数 |
stat | 「通常」「読み取り専用」「無効」を設定 |
Comboboxウィジェットを使ったプログラム
Comboboxウィジェットを使ったプログラムは、以下のようになります。
コンボボックスで選択した値をラベルに表示しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
### インポート import tkinter from tkinter import ttk ### メイン画面作成 main = tkinter.Tk() ### 画面サイズ設定 main.geometry("640x400") ### 画面色設定 main.configure(bg="lime") ### ラベル表示変数 value = tkinter.StringVar() ### スタイル作成 style = ttk.Style() ### テーマ設定 style.theme_use("classic") ### コンボボックス作成 list = ["明治", "大正", "昭和", "平成", "令和"] combobox = ttk.Combobox(master=main, values=list, textvariable=value) ### リストの先頭を表示 combobox.set(list[0]) ### リストボックス選択時のイベント取得 combobox.bind("<<ComboboxSelected>>") ### ラベル作成 label = tkinter.Label(master=main, textvariable=value, font=("HG丸ゴシックM-PRO",48), fg="red", bg="lime", height=3, width=15) ### コンボボックス配置 combobox.pack(pady=50) ### ラベル配置 label.pack(pady=100, side="bottom") ### イベントループ main.mainloop() |
プログラムを実行すると、以下のような画面が表示され、コンボボックスの右横の▼を押下するとリストが表示されます。