在對話框中我有一個組合框和一個文本框。我想這樣做,如果選擇了組合框中的一個特定值,文本字段將被禁用(或隱藏),並且如果選擇了另一個值,則將啓用文本字段。
我:WXPython:獲取組合框的初始值
self.myCombo = wx.ComboBox(parent=self, choices=['value1', 'value2'], style = wx.CB_READONLY)
self.myCombo.Bind(wx.EVT_COMBOBOX, self.onChange)
# ...
def onChange(self, ev):
self.myTextField.Enable(False) if self.myCombo.GetValue() != "value1" else self.myTextField.Enable(True)
而且這樣做的工作就像一個魅力,文本字段被啓用和禁用。
但是,我想根據組合框的初始值啓用或禁用文本字段,這意味着從配置文件中獲取並在對話框打開時選擇的值。
我試過相同:
self.myTextField = wx.TextCtrl(parent=self)
self.myTextField.Enable(False) if self.myCombo.GetValue() != "value1" else self.myTextField.Enable(True)
但這不起作用。我也試過GetSelection
,但是當記錄這個時,GetValue
和GetSelection
都返回-1。
GetSelection和getValue應該工作。你能否給他們一個完整的,但最小的工作例子,他們不。也就是說,你的問題可能與myCombo的狀態有關,但是從你的代碼來看,你真的不知道。 – tom10 2014-09-13 19:07:08