我正在尝试编写更新条目中显示的预定义字符串的过程。
#!/bin/env wish
set tech {A B}
set rules {}
frame .t
ttk::combobox .t.maps -textvariable rules -state readonly -values $tech
entry .t.e -textvariable base_list
pack .t .t.maps .t.e
bind .t.maps <Button-1> {
switch -- $rules {
"A" {
set base_list {1 2 3}
}
"B" {
set base_list {4 5 6}
}
}
}
条目中的字符串仅在第二个组合框值选择时更新的问题。
示例:
GUI启动
选择“A”
该条目仍为空!
再次选择“A”
此时条目已更新
选择“B”
条目字符串仍未更新为“4 5 6”
再次选择“B”
如何修改我的代码以在第一个组合框值选择时更新条目?
答案 0 :(得分:2)
只需绑定<<ComboboxSelected>>
事件而不是<Button-1>
。好的副作用:当用户通过键盘选择组合框项目时也会调用绑定。
#!/bin/env wish
set tech {A B}
set rules {}
frame .t
ttk::combobox .t.maps -textvariable rules -state readonly -values $tech
entry .t.e -textvariable base_list
pack .t .t.maps .t.e
bind .t.maps <<ComboboxSelected>> {
switch -- $rules {
"A" {
set base_list {1 2 3}
}
"B" {
set base_list {4 5 6}
}
}
}
顺便说一句:你的例子中有一个拼写错误:tech
行中的$tech
必须是ttk::combobox
。