Séparer l'interaction de l'utilisateur à partir de programmical changement: PyQt, QComboBox

J'ai plusieurs QComboBoxes dans mon PyQt4/Python3 GUI et ils sont remplis d'une des entrées d'une base de données lors de l'initialisation. Initiale CurrentIndex est mis à 0. Il y a aussi une case à cocher qui change la langue de mon les zones de liste déroulante. Pour objectif de préserver la sélection de l'utilisateur de sauvegarder les index de l'élément courant et setCurrentIndex à ce nombre après je remplir ComboBox avec les éléments traduits. Toutes ces actions émettent currentIndexChanged signal.

Sur la base des éléments sélectionnés dans QComboBoxes certains intrigue est affiché. L'idée est de redessiner le tracé en ligne - dès que l'utilisateur modifie l'un de ComboBox élément courant. Et là, j'ai un problème car si je le rafraîchissement de l'intrigue à chaque fois le signal de currentIndexChanged est rependu, je retrace également à plusieurs reprises au cours de l'initialisation et si la traduction cochez la case de sélection a été changé.

Quelle est la meilleure façon de séparer ces cas? En principe, j'ai besoin de séparer programmical actuelle de l'Indice de Changement de la part de l'utilisateur, et la mise à jour de l'intrigue que dans le cas d'une version ultérieure (pendant l'initialisation de l'interface graphique, je peux programically appel de fonction plot de mise à jour une fois). Dois-je écrire/réécrire le signal? Si oui, je n'ai jamais fait ça avant et il souhaite de tout indice ou un bon exemple. Utiliser un autre signal? Ou peut-être il ya un moyen temporaire de bloquer tous les signaux?

OriginalL'auteur Katya | 2012-02-08