Heim > Artikel > Backend-Entwicklung > Klicken Sie auf die PyQt4-Schaltfläche und registrieren Sie sie mehrmals, wenn Sie darauf klicken
Ich bin neu bei pyqt4 und nach vielen Suchen habe ich keine Informationen zu dem Problem gefunden, das ich in der GUI sehe.
Das Problem besteht darin, dass, wenn der Benutzer auf die Schaltfläche getsingleitems klickt, die Funktion genauso oft ausgeführt wird, wie der Benutzer auf getallitems klickt. Wenn der Benutzer beispielsweise auf „getallitems“ klickt, um das Artikelfeld auszufüllen, und dann auf „getsingleitem“ klickt, wird „getitems“ einmal ausgeführt und die Ergebnisse werden wie erwartet einmal gedruckt. Wenn der Benutzer jedoch ein anderes Element aus der Liste auswählt und erneut auf „getallitems“ und dann auf „getsingleitem“ klickt, führt dies dazu, dass „getitem“ 2x ausgeführt wird, sodass 2x gedruckt wird. Bei jedem Durchlauf wird die Zahl erhöht, sodass Sie auch ohne Änderung der Auswahl viermal auf „getallitems“ klicken und dann „getitem“ durch Klicken auf „getsingleitem“ viermal ausführen können. Die einzige Möglichkeit, es zu aktualisieren, besteht darin, die GUI zu schließen und erneut zu öffnen. Jede Hilfe wäre sehr dankbar.
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_()
Anscheinend stellen Sie jedes Mal eine neue Verbindung her getitems
时添加到 getsingleitem.clicked
,
Also clicked
das Signal ist mehrmals mit demselben Steckplatz verbunden,
Dies führt zu dem von Ihnen beobachteten Verhalten.
Mobilfunkanschlüsse
self.getSingleItem.clicked.connect(self.getitem)
From getitems
到 __init__
sollte dieses Problem lösen, denke ich.
Das obige ist der detaillierte Inhalt vonKlicken Sie auf die PyQt4-Schaltfläche und registrieren Sie sie mehrmals, wenn Sie darauf klicken. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!