如何更改ttk :: combobox的字体大小

时间:2018-10-27 11:18:40

标签: tcl tk

我使用ttk-widgets,并且想要更改ttk :: combobox小部件的字体大小。如您在示例中所见,标签和按钮的字体大小发生了变化,但组合框却没有变化。

font create MyFont -family Helvetica -size 12 -slant roman -weight normal
ttk::style theme use default
ttk::style configure TLabel -font MyFont
ttk::style configure TButton -font MyFont
ttk::style configure TCombobox -font MyFont

set Liste {Anton Berta Caesar}

ttk::label .lb -text "Label"
ttk::combobox .cb -values $Liste
ttk::button .bt -text "Change Fontsize" -command {font configure MyFont -size 20}

pack .lb .cb .bt

顺便说一下,TMenubutton,ttk :: entry和ttk :: spinbox都存在相同的问题。

1 个答案:

答案 0 :(得分:1)

ttk :: combobox小部件的字体直接作为小部件选项公开。在创建过程中(或使用configure方法)进行设置:

ttk::combobox .cb -values $Liste -font MyFont

要更改下拉列表中使用的字体,您需要更神秘的东西(因为它内部使用了传统的Tk列表框,而不是样式化的东西)。 之前,请创建组合框(或者更确切地说是在您第一次将其弹出之前,但这很棘手),因为仅在Tk中的小部件创建期间读取了“数据库”选项:

option add *ComboboxPopdown.f.l.font MyFont

*ComboboxPopdown.f.l.font是神秘的部分。 *ComboboxPopdown说会影响所有具有ComboboxPopdown类(这是由组合框绑定创建的临时弹出对话框的类)的小部件,然后我们在其中选择.f.l小部件小顶层,即列表框,然后我们提供font属性的替代,否则将为默认属性。