
PySimpleGUIでコンボボックスの高さを変えたいんだけど、どうすればいいんだろう?
今回はそんなお悩みを解決します。
確認環境
- Mac mini (M1, 2020)
- macOS Ventura バージョン13.0
- Python 3.11.0
- PySimpleGUI 4.60.4
PySimpleGUIでコンボボックスを作成
まずは PySimpleGUI を使ってコンボボックスを作ってみましょう。
import PySimpleGUI as sg
window_title = "コンボボックスの高さを変える"
combo_list = ["Python", "PHP", "JavaScript", "Go", "Rust"]
sg.theme('Dark')
layout = [
[sg.Text("好きな言語は?")],
[sg.Combo(combo_list, default_value="選択してください", size=(20, 5))]
]
window = sg.Window(window_title, layout, size=(200, 150))
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
window.close()
上記を実行すると、


こんな感じのウィンドウが表示されます。
コンボボックスの高さを変える
本題のコンボボックスの高さを変えるにはどうしたら良いのか。
Combo()
メソッドの引数にsize
を指定していますが、これはコンボボックスの幅と、選択肢を表示した時に同時に何個表示させるか、を指定しています。
例えば、size=(15, 3)
と変えてみると、


上図のようになり、選択肢の箇所にスクロールバーが表示されます。
では、コンボボックスの高さを変えるにはどうしたら良いのか。
フォントの大きさを指定することでコンボボックスの高さを変えます。
import PySimpleGUI as sg
window_title = "コンボボックスの高さを変える"
combo_list = ["Python", "PHP", "JavaScript", "Go", "Rust"]
font_config = ("Hiragino Sans", 16) # 追加
sg.theme('Dark')
layout = [
[sg.Text("好きな言語は?")],
[
sg.Combo(
combo_list,
default_value="選択してください",
size=(20, 5),
font=font_config # 追加
)
]
]
window = sg.Window(window_title, layout, size=(300, 200))
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
window.close()
フォントの種類Hiragino Sans
とサイズ16
を入れた変数を作り、Combo()
メソッドの引数に指定しました。
これを実行すると、


こんな表示になります。
フォントの種類とサイズはWindow()
メソッドでも指定できるので、そちらでも構いません。
import PySimpleGUI as sg
window_title = "コンボボックスの高さを変える"
combo_list = ["Python", "PHP", "JavaScript", "Go", "Rust"]
font_config = ("Hiragino Sans", 16)
sg.theme('Dark')
layout = [
[sg.Text("好きな言語は?")],
[sg.Combo(combo_list, default_value="選択してください", size=(20, 5))]
]
window = sg.Window(window_title, layout, size=(300, 250), font=font_config)
while True:
event, values = window.read()
if event == sg.WINDOW_CLOSED:
break
window.close()
(選択肢をウィンドウ内に収めるために高さを250に変更)
上記を実行すると、


このような表示になります。
ウィンドウ全体に適用したため、Text()
メソッドのフォントにも反映されています。
PySimpleGUI 公式ドキュメント
PySimpleGUI は仕様は公式ドキュメントで調べるのがオススメです。
今回使用したCombo()
メソッドについては下記リンクの先に記載されているので、詳しく知りたい方は参照してみてください。
おわりに
今回は、
PySimpleGUI のコンボボックスの高さを変える方法
をご紹介しました。
Python の GUI フレームワークはいくつか(たくさん?)ありますが、私は PySimpleGUI が好きで、ロ簡単なツールを作る時などによく使っています。
公式ドキュメントもしっかり整備されているので、その点でもオススメです。
以上です。
コメント