Tkinterのttk.Combobox
ウィジェットは、Python GUIアプリケーションにドロップダウンメニューを作成する便利な方法を提供します。このチュートリアルでは、その主要な機能と機能を説明し、コンボボックスをプロジェクトに効果的に統合するための実践的な例を示します。
目次:
1. 基本的なコンボボックスの例
ttk.Combobox
の作成と使用方法を説明する簡単な例から始めましょう。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Combobox Example")
combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combo.pack(pady=20)
combo.current(0) # デフォルト値を"Option 1"に設定
root.mainloop()
このコードはメインウィンドウを作成し、3つの事前に定義されたオプションを持つコンボボックスを追加し、デフォルトの選択を「Option 1」に設定します。tkinter
とttk
の両方をインポートすることを忘れないでください。
2. 外観のカスタマイズ:フォントとスタイル
フォントなど、コンボボックスの外観をカスタマイズできます。
import tkinter as tk
from tkinter import ttk
import tkinter.font as tkFont
root = tk.Tk()
root.title("Combobox Styling Example")
myFont = tkFont.Font(family="Helvetica", size=12, weight="bold")
combo = ttk.Combobox(root, values=["Option A", "Option B", "Option C"], font=myFont)
combo.pack(pady=20)
combo.current(0)
root.mainloop()
この例では、カスタムフォントを作成し、コンボボックスに適用する方法を示しています。目的の外観を実現するために、さまざまなフォントファミリー、サイズ、ウェイトを試してください。
3. イベント処理とユーザーインタラクション
ユーザーの選択に応答するには、コンボボックスにイベントをバインドします。ユーザーが項目を選択すると、<<ComboboxSelected>>
イベントがトリガーされます。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Combobox Event Handling")
def combo_selected(event):
selected_item = combo.get()
print(f"Selected item: {selected_item}")
combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"])
combo.pack(pady=20)
combo.current(0)
combo.bind("<<ComboboxSelected>>", combo_selected)
root.mainloop()
このコードは、選択された項目を出力するcombo_selected
関数を定義します。bind
メソッドはこの関数を<<ComboboxSelected>>
イベントに接続します。
4. コンボボックス値の動的な更新
実行時にコンボボックスのオプションを動的に更新できます。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Dynamic Combobox")
combo = ttk.Combobox(root)
combo.pack(pady=20)
def update_combo():
new_values = ["New Option 1", "New Option 2", "New Option 3"]
combo["values"] = new_values
button = tk.Button(root, text="Update Combobox", command=update_combo)
button.pack()
root.mainloop()
ボタンはupdate_combo
関数をトリガーし、コンボボックスのvalues
属性を変更します。
5. 読み取り専用コンボボックスの作成
コンボボックスを読み取り専用にする(直接テキスト入力できないようにする)には、state
オプションを使用します。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
root.title("Read-Only Combobox")
combo = ttk.Combobox(root, values=["Option 1", "Option 2", "Option 3"], state="readonly")
combo.pack(pady=20)
combo.current(0)
root.mainloop()
state="readonly"
を設定すると、直接テキスト入力が無効になり、ドロップダウンからの選択のみが可能になります。