📌

【Python】Tkinterのコンボボックスのオプションと詳しい使い方

2024/07/17に公開

1. はじめに

TkinterはPythonに標準で搭載されているGUIライブラリで、簡単にデスクトップアプリケーションを作成することができます。その中でもコンボボックス(Combobox)は、ユーザーが複数の選択肢から一つを選ぶことができる便利なウィジェットです。この記事では、Tkinterのコンボボックスのオプションと詳しい使い方について説明します。

2. コンボボックスの基本

コンボボックスを使用するためには、tkinterモジュールとttkモジュールをインポートする必要があります。

import tkinter as tk
from tkinter import ttk

root = tk.Tk()
root.title("コンボボックスの基本")

combo = ttk.Combobox(root, values=["選択肢1", "選択肢2", "選択肢3"])
combo.pack(pady=10)

root.mainloop()

コードの説明

  1. tkinterモジュールとttkモジュールをインポートします。
  2. Tkinterのメインウィンドウを作成します。
  3. コンボボックスを作成し、選択肢を設定します。
  4. コンボボックスをウィンドウに配置します。

3. コンボボックスのオプション

コンボボックスには多くのオプションがあり、それぞれのオプションを設定することで、コンボボックスの見た目や動作をカスタマイズすることができます。以下は、主なオプションとその簡単な説明です。

オプション 説明
values コンボボックスの選択肢
state コンボボックスの状態 (normalreadonlydisabled)
width コンボボックスの幅
postcommand ドロップダウンを表示する前に呼び出される関数
textvariable 選択された値を保持する変数
height ドロップダウンリストの高さ

3.1 values

valuesオプションは、コンボボックスの選択肢を設定します。

combo = ttk.Combobox(root, values=["選択肢1", "選択肢2", "選択肢3"])

3.2 state

stateオプションは、コンボボックスの状態を設定します。readonlyに設定すると、ユーザーはドロップダウンからのみ選択可能になります。

combo = ttk.Combobox(root, values=["選択肢1", "選択肢2", "選択肢3"], state="readonly")

3.3 width

widthオプションは、コンボボックスの幅を設定します。

combo = ttk.Combobox(root, values=["選択肢1", "選択肢2", "選択肢3"], width=20)

3.4 postcommand

postcommandオプションは、ドロップダウンを表示する前に実行される関数を設定します。

def update_values():
    combo['values'] = ["新しい選択肢1", "新しい選択肢2", "新しい選択肢3"]

combo = ttk.Combobox(root, postcommand=update_values)

3.5 textvariable

textvariableオプションは、選択された値を保持する変数を設定します。

selected_value = tk.StringVar()
combo = ttk.Combobox(root, textvariable=selected_value)

3.6 height

heightオプションは、ドロップダウンリストの高さを設定します。

combo = ttk.Combobox(root, values=["選択肢1", "選択肢2", "選択肢3"], height=5)

4. コンボボックスの使い方の例

以下は、コンボボックスを使った簡単なアプリケーションの例です。

import tkinter as tk
from tkinter import ttk

def show_selected(event):
    selected_label.config(text="選択された値: " + combo.get())

root = tk.Tk()
root.title("コンボボックスの使い方の例")

selected_value = tk.StringVar()

combo = ttk.Combobox(root, values=["選択肢1", "選択肢2", "選択肢3"], textvariable=selected_value, state="readonly")
combo.pack(pady=10)
combo.bind("<<ComboboxSelected>>", show_selected)

selected_label = tk.Label(root, text="選択された値: ")
selected_label.pack(pady=10)

root.mainloop()

コードの説明

  1. show_selected関数は、コンボボックスで選択された値を表示します。
  2. コンボボックスを作成し、valuestextvariable、およびstateオプションを設定します。
  3. コンボボックスの選択が変更されたときにshow_selected関数を呼び出すために、bindメソッドを使用します。
  4. selected_labelラベルに選択された値を表示します。

5. まとめ

Tkinterのコンボボックスは、ユーザーが複数の選択肢から一つを選ぶことができる便利なウィジェットです。この記事では、コンボボックスの基本的な使い方から、主要なオプションの説明までを詳しく紹介しました。これらの知識を活用して、より使いやすいGUIアプリケーションを作成してください。

Discussion