2017-02-22 47 views
0

我正在尝试编写更新条目中显示的预定义字符串的过程。条目:显示文本仅在第二个循环更新

#!/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启动

GUI Start

选择 “A”

Selecting A

入口仍然是空的!

选择 “A” 再次

SElecting A again

这次条目被更新

选择

enter image description here

入口串仍然没有更新 “B” 至“4 5 6“

选择“B”再次

enter image description here

如何修改我的代码,使进入的第一个组合框的值选择更新?

回答

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} 
     } 
    } 
} 

BTW:我们在您的例子一个错字:tech必须在ttk::combobox线$tech

相关问题