Heim > Backend-Entwicklung > Python-Tutorial > Klicken Sie auf die PyQt4-Schaltfläche und registrieren Sie sie mehrmals, wenn Sie darauf klicken

Klicken Sie auf die PyQt4-Schaltfläche und registrieren Sie sie mehrmals, wenn Sie darauf klicken

WBOY
Freigeben: 2024-02-09 18:00:05
nach vorne
665 Leute haben es durchsucht

Klicken Sie auf die PyQt4-Schaltfläche und registrieren Sie sie mehrmals, wenn Sie darauf klicken

Frageninhalt

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_()
Nach dem Login kopieren


Richtige Antwort


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)
Nach dem Login kopieren

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!

Quelle:stackoverflow.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage