【Python】コンボボックスを使ってみる(tkinter.combobox)

Python
Uratake
Uratake

今回はGUIアプリでプルダウンのリスト
(コンボボックス)を使ってみたいと思います。

本記事のゴール

この記事ではコンボボックスを設置して選択した状態で決定ボタンを押した時に
メッセージボックスに選択結果を表示するプログラムを作成することをゴールとします。

  • コンボボックスで月を選択することができる
  • 決定ボタンを押すと選択した月の値を取得する
  • 取得した結果をメッセージボックスで表示する

コンボボックスの使い方

ソースコード

実行結果

本記事のゴールとしてたコンボボックスが設置できて決定ボタンを押すと
メッセージボックスで選択結果を表示することができました。

コードの解説

ボタンのイベントについては過去のこちらの記事を参考にしてください。

20行目はコンボボックスで表示されるリストを作成しています。
20行目の「list =[‘1月’, ‘2月’, ‘3月’, ‘4月’, ‘5月’, ‘6月’, ‘7月’, ‘8月’, ‘9月’, ’10月’, ’11月’, ’12月’,]」は
list変数に表示される内容を代入しています。
23~25行目はコンボボックスを設置しています。
23行目の「cb = ttk.Combobox(window, values = list)」はコンボボックスの設置をしています。
24行目の「cb.pack(pady=50)」はコンボボックスの設置場所を設定しています。
27行目はコンボボックスのリストで最初に表示されるものを設定しています。
27行目の「cb.set(list[0])」はリストの最初の文字列を表示しています。

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

コピペ用のソースコード

import tkinter
from tkinter import ttk
from tkinter import messagebox

#ボタンが押された時の関数
def check_list():
    check = cb.get()
    messagebox.showinfo('結果', check)

#メイン画面を作成
window = tkinter.Tk()

#サイズを設定
window.geometry('300x200')

#タイトルの設定
window.title('Combo box')

#コンボボックスのリスト
list =['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月',]

#コンボボックスを設置
cb = ttk.Combobox(window, values = list)
cb.pack(pady=50)

#コンボボックスのリストの先頭を表示
cb.set(list[0])

#ボタンを設置
btn = tkinter.Button(window, text='決定', command=check_list)
btn.place(x=140, y=100)

#画面表示
window.mainloop()

コメント