识别选中的组合框
Identify combobox that is selected
我想更改组合框中所选项目的前景色。组合框本身是从 for 循环创建的。一个
这是我正在尝试的示例:
package require Tk
toplevel .win2
set Default zero
for {set i 0} {$i <=10} {incr i} {
ttk::combobox .win2.c_Numbers\_$i -textvariable Default -style TCombobox -values \
[list {one} {two} {threre} {four} {five} {six} ]
grid config .win2.c_Numbers\_$i -column 0 -row $i -sticky "w"
bind .win2.c_Numbers\_$i <<ComboboxSelected>> {change [%W get]}
}
proc change {var1} {
puts "Selected Number: $var1"
ttk::style configure TCombobox -foreground red
}
选择单个条目后,所有条目都显示为红色。
我知道 <<ComboboxSelected>>
为那个特定的组合框生成一个内部 'call' 通过在 puts "Selected Number: $var1"
中请求它时返回选定的条目。
有没有办法让 <<ComboboxSelected>>
输出所选组合框的 identifier/name。然后我就可以只为那个特定组合框的条目着色....或者是否有我没有看到的解决方法?
提前感谢您的建议。
%W
是被选中的特定组合框。 %W get
从该组合框中获取所选项目。所以如果你这样做:
package require Tk
toplevel .win2
set Default zero
for {set i 0} {$i <=10} {incr i} {
ttk::combobox .win2.c_Numbers_$i -textvariable Default -style TCombobox -values \
[list {one} {two} {three} {four} {five} {six} ]
grid config .win2.c_Numbers_$i -column 0 -row $i -sticky "w"
bind .win2.c_Numbers_$i <<ComboboxSelected>> {change %W [%W get]}
}
proc change {w var1} {
puts "Selected combobox: $w"
puts "Selected Number: $var1"
ttk::style configure TCombobox -foreground red
}
您可以使用 $w
从那里添加其他功能。
我想更改组合框中所选项目的前景色。组合框本身是从 for 循环创建的。一个
这是我正在尝试的示例:
package require Tk
toplevel .win2
set Default zero
for {set i 0} {$i <=10} {incr i} {
ttk::combobox .win2.c_Numbers\_$i -textvariable Default -style TCombobox -values \
[list {one} {two} {threre} {four} {five} {six} ]
grid config .win2.c_Numbers\_$i -column 0 -row $i -sticky "w"
bind .win2.c_Numbers\_$i <<ComboboxSelected>> {change [%W get]}
}
proc change {var1} {
puts "Selected Number: $var1"
ttk::style configure TCombobox -foreground red
}
选择单个条目后,所有条目都显示为红色。
我知道 <<ComboboxSelected>>
为那个特定的组合框生成一个内部 'call' 通过在 puts "Selected Number: $var1"
中请求它时返回选定的条目。
有没有办法让 <<ComboboxSelected>>
输出所选组合框的 identifier/name。然后我就可以只为那个特定组合框的条目着色....或者是否有我没有看到的解决方法?
提前感谢您的建议。
%W
是被选中的特定组合框。 %W get
从该组合框中获取所选项目。所以如果你这样做:
package require Tk
toplevel .win2
set Default zero
for {set i 0} {$i <=10} {incr i} {
ttk::combobox .win2.c_Numbers_$i -textvariable Default -style TCombobox -values \
[list {one} {two} {three} {four} {five} {six} ]
grid config .win2.c_Numbers_$i -column 0 -row $i -sticky "w"
bind .win2.c_Numbers_$i <<ComboboxSelected>> {change %W [%W get]}
}
proc change {w var1} {
puts "Selected combobox: $w"
puts "Selected Number: $var1"
ttk::style configure TCombobox -foreground red
}
您可以使用 $w
从那里添加其他功能。