PyQT4 Combobox изменяет список другого поля со списком

Я только начал использовать pyqt4 и застрял в том, как изменить список со списком из другого поля со списком. Есть ли какой-то пример, показывающий, как работать с этим методом.

Нужно ли использовать оператор if, else, чтобы изменить параметр для combobox_2?

ex.

Combobox_1 имеет список 1,2,3. Combobox_2 содержит список a,b,c или d,e,f или g,h,i.

Если в Combobox_1 выбрано 1, Combobox_2 будет показывать a,b,c.

Если в Combobox_1 выбрано 2, Combobox_2 покажет d, e, f.

Если в Combobox_1 выбрано 3, Combobox_2 будет отображать g,h,i.

Благодарность


person lunarcrusader    schedule 21.11.2012    source источник


Ответы (1)


Что вы хотите сделать, это что-то вроде этого:

def __init__(self):
    ...
    self.items = {'1':['a','b','c'],'2':['d','e','f'],'3':['g','h','i']}
    self.Combobox_1.activated[str].connect(self.on_combo_activated)
    ...

...

def on_combo_activated(self, text):
    self.Combobox_2.clear()
    self.Combobox_2.addItems(self.items[text])
person BrtH    schedule 21.11.2012
comment
отлично, что сработало, какие-нибудь советы о том, если бы у меня было три поля со списком вместо двух? - person lunarcrusader; 22.11.2012
comment
Возможно, вы могли бы что-то сделать с currentIndexChanged. сигнал во втором выпадающем списке. Другая возможность - использовать второй словарь для элементов в третьем поле со списком со всеми значениями поля со списком_2 в качестве ключей, а затем выполнить self.Combobox_3.addItems(self.items_2[self.Combobox_2.currentText()]). - person BrtH; 22.11.2012