PyQt combobox só reagem na interação do usuário
Pergunta
Eu tenho uma caixa de listagem que você pode selecionar usuários. Para a esquerda de que é um combobox listando os grupos disponíveis, o usuário pode ser colocá-lo. Se o usuário estiver em um grupo, a caixa de combinação será automaticamente definida para esse grupo. Eu quero fazê-lo assim quando você alterar a seleção de grupo, ele irá mover o usuário a esse grupo. Eu adicionei essa conexão:
QtCore.QObject.connect(self.GroupsBox, QtCore.SIGNAL("currentIndexChanged(QString)"), self.HandleGrouping)
O problema é que desde que eu vou estar selecionando diferentes usuários em diferentes grupos, cada vez que selecionar um novo usuário, a opção padrão nas mudanças combobox e Qt registra isso como sinal de um 'currentIndexChanged'.
Não parece haver nenhuma maneira de disparar apenas o sinal no user-interação direta com o widget em si. Que métodos posso usar para contornar este?
Solução
Pegar um sinal do QComboBox ( activated(int index)
), e atualizar o usuário selecionado com base nisso. Em você função Handler, não faça nada se o índice selecionado no combobox é o mesmo que o grupo o usuário selecionado está dentro.
Talvez mover o combobox para a direita da caixa de listagem de usuário, como sua ordem de ações serão Select User -.> Selecionar grupo