Как отобразить комбинированный список на основе выбора из другого комбинированного списка - PullRequest
0 голосов
/ 12 февраля 2012

Я пытаюсь отобразить (включить) комбинированный список на основе определенного элемента, выбранного в предыдущем комбинированном списке.Я пробовал много комбинаций, и не могу заставить его вести себя правильно.Он будет отображаться нормально (отключено), но я хочу, чтобы оно отображалось (включено) только при выборе определенного элемента.Я пробовал .Refresh () и EVT_COMBOBOX, и они не работают.Ниже приведен код:

    #Media Quality
    self.formats3 = ['-sameq','-qmax']
    self.format_combo3=wx.ComboBox(self, size=(100, -1),value='Select Quality', choices=self.formats3, style=wx.CB_DROPDOWN, pos=(300,141))
    quality=self.format_combo3.GetValue()


    #-qmax settings
    self.formats4 = ['1','2','3','4','5','6','7','8']
    self.format_combo4=wx.ComboBox(self, size=(30, -1),value='0', choices=self.formats4, style=wx.CB_DROPDOWN, pos=(405,141))
    self.format_combo4.Disable()

    if quality == '-qmax':
        self.format_combo4.Enable()

    else:
        self.format_combo4.Disable()

Решение:

    #-qmax settings
    self.formats4 = ['1','2','3','4','5','6','7','8']
    self.format_combo4=wx.ComboBox(panel, size=(30, -1),value='0', choices=self.formats4, style=wx.CB_DROPDOWN, pos=(405,111))
    self.format_combo4.Disable()


    #Media Quality
    self.formats5 = ['Select Preset','video to mp3']
    self.format_combo5=wx.ComboBox(panel, size=(100, -1),value='Select Preset', choices=self.formats5, style=wx.CB_DROPDOWN, pos=(300,141))

    #Bit rate
    self.formats6 = ['k/bs','128000', '160000', '180000', '192000']
    self.format_combo6=wx.ComboBox(panel, size=(47, -1),value='k/bs', choices=self.formats6, style=wx.CB_DROPDOWN, pos=(405,141))
    self.format_combo6.Disable()




def OncomboBox(self, e):
    quality=self.format_combo3.GetValue()
    if quality == '-qmax':
        self.format_combo4.Enable()

    else:
        self.format_combo4.Disable()
...