2017-02-22 63 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

相關問題