2014-09-17 2 views
1

У меня есть pyqtgraph Combobox, который определяется следующим образом.Как обнаружить повторный выбор того же элемента combobox pyqt

def __init__(self): 
    # some other stuff.... 

    mylist=OrderedDict() 
    mylist['1k'] = 1 
    mylist['10k'] = 10 
    mylist['100k'] = 100 
    mylist['1M'] = 1000 
    self.myselectorA = ComboBox() 
    self.myselectorA.setItems(mylist) 
    self.myselectorA.currentIndexChanged.connect(self.selchangedA) 

def selchangedA(self): 
    self.sq.setA(self.myselectorA.value()) 
    if self.sq.gainlink: 
     self.sq.setB(100./self.myselectorA.value()) 
     self.viewupdate = True 
     self.myselectorB.setValue(100./self.myselectorA.value()) 
     self.viewupdate = False 

Прилагаемый функция обратного вызова selchangedA делает некоторый материал, который включает в себя дополнительное обновление второго Combobox (myselectorB). Это обновление зависит от дополнительной переменной gainlink.

У меня возникла ситуация, когда мне нужно было обнаружить повторный выбор того же элемента в выпадающем списке, чтобы он обновлял вторичное поле со списком. Это возможно?

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

ответ

2

Вместо currentIndexChanged(int) вы можете подключить сигнал activated(int) (который также испускается, если выбор не изменился, но был выбран элемент) до selchangedA(self, int). Кроме того, вы можете сохранить текущий индекс поля со списком в отдельной переменной и зарегистрировать selchangedA, если это значение совпадает с предыдущим и действовать соответствующим образом.

+0

Отлично, только то, что я хочу! Благодарю. Я не использовал функцию 'int', потому что мне нужно значение OrderedDict, а не индекс выбора. Еще раз спасибо! – mor22

Смежные вопросы