如何使用组合框项目tcl tk

时间:2014-11-15 12:21:57

标签: fonts combobox label tcl tk

我必须使用组合框代码更改标签文本的字体。 这是我的组合框:

variable varLabel3 
variable varCombobox1 [list Normal Italic Bold ]

ttk::combobox $base.combobox#1 \
    -values $varCombobox1
set c [.combobox#1 get]

例如,如果我选择Italic,标签(我的程序中的.label#1)中的文字会变得倾斜。我怎么能这样做?

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

其他所有事情都在改变事物的命名方式。