我必须使用组合框代码更改标签文本的字体。 这是我的组合框:
variable varLabel3
variable varCombobox1 [list Normal Italic Bold ]
ttk::combobox $base.combobox#1 \
-values $varCombobox1
set c [.combobox#1 get]
例如,如果我选择Italic
,标签(我的程序中的.label#1
)中的文字会变得倾斜。我怎么能这样做?
答案 0 :(得分:1)
ttk::combobox
当值改变时,将 <<ComboboxSelected>>
虚拟事件发送给自身,此时您可以使用组合框的 get
方法找出所选内容,然后根据该行为配置您在标签中使用的命名字体。它根本不需要太多代码。
font create myFont -family Times -size 42 -weight normal -slant roman
pack [label .l -text "Sample Text" -font myFont]
set values [list Normal Italic Bold ]
pack [ttk::combobox .combo -values $values]
bind .combo <<ComboboxSelected>> {
switch [%W get] {
"Normal" { font configure myFont -weight normal -slant roman }
"Italic" { font configure myFont -weight normal -slant italic }
"Bold" { font configure myFont -weight bold -slant roman }
}
}
您可能还想设置组合框的初始值,并使其不能直接编辑为文本:
.combo set [lindex $values 0]
.combo configure -state readonly
其他所有事情都在改变事物的命名方式。