Python問題集を解いてみよう!!

【Python】PySimpleGUIのコンボボックスの高さを変えたい

【Python】PySimpleGUIのコンボボックスの高さを変えたい

PySimpleGUIでコンボボックスの高さを変えたいんだけど、どうすればいいんだろう?

今回はそんなお悩みを解決します。

おすすめのレンタルサーバー
目次

確認環境

  • Mac mini (M1, 2020)
  • macOS Ventura バージョン13.0
  • Python 3.11.0
  • PySimpleGUI 4.60.4
Pythonを勉強するならUdemyがおすすめ

Pythonを勉強するなら Udemy がおすすめです。

書籍よりも動画の方が情報量が多く、初心者の方でも理解しやすいですし、疑問に思ったことは講師に質問できるので、私は Python の勉強方として Udemy をオススメしています。

特に、酒井 潤さんの「現役シリコンバレーエンジニアが教えるPython入門」というコースがオススメです。

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 が好きで、ロ簡単なツールを作る時などによく使っています。

公式ドキュメントもしっかり整備されているので、その点でもオススメです。

以上です。

スポンサーリンク

【Python】PySimpleGUIのコンボボックスの高さを変えたい

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次