我使用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都存在相同的问题。
答案 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
属性的替代,否则将为默认属性。