Maison > Article > développement back-end > Le bouton PyQt4 clique sur s'inscrire plusieurs fois lorsque l'on clique dessus
Je suis nouveau sur pyqt4 et après de nombreuses recherches, je n'ai trouvé aucune information sur le problème que je vois dans l'interface graphique.
Le problème est que lorsque l'utilisateur clique sur le bouton getsingleitems, la fonction s'exécute le même nombre de fois que l'utilisateur clique sur getallitems . Un exemple est que si l'utilisateur clique sur getallitems pour remplir le champ des éléments, puis clique sur getsingleitem, alors getitems s'exécute une fois et les résultats sont imprimés une fois comme prévu. Cependant, si l'utilisateur sélectionne un autre élément dans la liste et clique à nouveau sur getallitems, puis clique sur getsingleitem, le résultat est que getitem s'exécute 2x, donc 2x est imprimé. Chaque exécution augmentera, donc même sans modifier la sélection, en cliquant sur getallitems 4x, puis getitem s'exécutera 4x en cliquant sur getsingleitem. La seule façon de l'actualiser est de fermer l'interface graphique et de la rouvrir. Toute aide serait grandement appréciée.
class UpdateItem(QDialog, updateitem_ui.Ui_updateitem): def __init__(self): QDialog.__init__(self) self.setupUi(self) tests = ['Test1', 'Test2', 'Test3'] self.list.addItems(tests) self.exit.clicked.connect(self.close) self.setFocus() self.getAllItems.clicked.connect(self.getitems) def getitems(self): self.items.clear() self.items.addItems(self.list.currentText()) self.getSingleItem.clicked.connect(self.getitem) def getitem(self): self.item_id = self.items.currentText() print(self.item_id) app = QApplication(sys.argv) gui = UpdateItem() gui.show() app.exec_()
Apparemment, vous établissez une nouvelle connexion à chaque fois getitems
时添加到 getsingleitem.clicked
,
Donc clicked
le signal est connecté plusieurs fois au même slot,
Cela se traduit par le comportement que vous avez observé.
Lignes mobiles
self.getSingleItem.clicked.connect(self.getitem)
De getitems
到 __init__
devrait résoudre ce problème, je suppose.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!