我有两个组合框。如果用户从第一个条目中选择一个条目,则第二个条目应该更新,以便用户只能选择某些内容。
我填充第一个框:
ttk::combobox .dsm.nb.f1.entr_Box1 -textvariable GUI_BoxOne -values [list {first entr} {second entr}] -state readonly
然后我使用 bind 来捕捉任何变化:
bind .dsm.nb.f1.entr_Box1 <<ComboboxSelected>> { ::UpdateCombobox }
如果有任何变化,我会重新填充第二个框:
proc ::UpdateCombobox { } {
switch $::GUI_BoxOne {
{first entr} {
set ::GUI_BoxTwo {one new value}
}
{second entr} {
set ::GUI_BoxTwo [list {first new value} {second new value} ]
}
}
}
这适用于开关的第一种情况,我在可以选择的第二个框中得到一个条目,但我没有设法用几个新值(行)填充该框。“第一个新值”和“第二个新值”最终成为框中的一个条目。以某种方式合乎逻辑,它是一个列表,但是我如何一次更新组合框的所有值?