tile」タグアーカイブ

ttk::comboboxのドロップダウンリストのフォントを変更する

ttk::comboboxには-fontオプションがあるのに、ドロップダウンリスト(popdown)のフォントを変えるオプションはありません。私の環境ではTkDefaultFontがTahoma 8ptになってるので、フォントが小さすぎて困ります。

Tcler's Wikiには全てのウィジェットで共通の設定をする方法が紹介されています。
Tcler's Wiki - ttk::combobox

# option add *TCombobox*Listbox.font MyComboboxFont

しかし、個別に大きさを変更したいこともあると思います。
comboboxのリストはウィジェットなのですが、通常、最初に表示するときに生成されます。
しかし、以下のコマンドを使って今すぐウィジェットを作成することもできます。
ttk::combobox::PopdownWindow cb
これを呼んでおけばフォントを変えてやることができます。

package require Tk
 
font create MyComboboxFont -family Arial -size 20
 
ttk::combobox .cb -font MyComboboxFont -values {ichiro jiro saburo}
set popdown [ttk::combobox::PopdownWindow .cb]
$popdown.f.l configure -font MyComboboxFont
 
place .cb -x 10 -y 10

ただ、ttk::comboboxだけがfontオプションを持っているのはスタイルのコンセプトに反するとか、fontを指定できるのにpopdownのフォントが指定できないとかいろいろ突っ込みどころの多いウィジェットなので、そのうち仕様が変更されるかもしれません。まあ、このくらいの労力ならむしろこのままでもいいんですが。。。