[Gelöst - durch Releasewechsel] PyQt5 event sender

KDE, Gnome, Windowmanager, X11, Grafiktreiber und alles was dazu notwendig ist. Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
kitebuggy
Beiträge: 25
Registriert: 01.07.2021 17:42:07

[Gelöst - durch Releasewechsel] PyQt5 event sender

Beitrag von kitebuggy » 17.07.2021 09:46:39

Hallo

Ich beginne mit Programmierung unter PyQt5. Mit der Funktion sender() kann man ja herausfinden, wie der jeweilige sender eines events heist. Nur liefert mir die Funktion sender().text() &sender, willl sagen den Namen des Senders mit dem Referenzzeichen & vorangestellt.

Inxi -S liefert:
System:
Host: debian Kernel: 4.19.0-17-amd64 x86_64 bits: 64
Desktop: KDE Plasma 5.14.5 Distro: Debian GNU/Linux 10 (buster)

Unter den neuen Debian Sid (Testing) habe ich kein solches Verhalten. Der Name des Senders wird ohne & angezeigt.

Kann man das einstellen? Ist das von der KDE Version abhängig?
Vielen Dank für eine Antwort.
Zuletzt geändert von kitebuggy am 22.08.2021 21:04:53, insgesamt 3-mal geändert.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: PyQt5 event sender

Beitrag von eggy » 17.07.2021 10:02:38

Vermutlich kann man einfacher/schneller helfen, wenn Du minimalen Beispielcode zeigst.

kitebuggy
Beiträge: 25
Registriert: 01.07.2021 17:42:07

Re: PyQt5 event sender

Beitrag von kitebuggy » 17.07.2021 18:56:10

Ja, Beispielcode kann ich liefern:

Code: Alles auswählen

import sys
from PyQt5.QtWidgets import QMainWindow, QPushButton, QApplication


class Example(QMainWindow):

    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        btn1 = QPushButton("Button 1", self)
        btn1.move(30, 50)

        btn2 = QPushButton("Button 2", self)
        btn2.move(150, 50)

        btn1.clicked.connect(self.buttonClicked)
        btn2.clicked.connect(self.buttonClicked)

        self.statusBar()

        self.setGeometry(300, 300, 450, 350)
        self.setWindowTitle('Event sender')
        self.show()

    def buttonClicked(self):
        sender = self.sender()
        self.statusBar().showMessage(sender.text() + ' was pressed')


def main():
    app = QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
Anstatt daß nun beim klicken eines Buttons der Name sauber angezeigt wird, steht stattdessen dort:
&Button1 was pressed
respektive
Button &2 was pressed

Das Zeichen & wird iregendwo in den Text gesetzt.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: PyQt5 event sender

Beitrag von eggy » 17.07.2021 19:44:38

Hier auf sid passiert das nicht (btw testing ist nicht sid, sid ist unstable, testing ist testing).
Ich würde sagen, das ist nen Bug in pyqt. An kde wird es eher nicht liegen. Man könnte jetzt natürlich anfangen nach dem Fehler zu suchen - oder einfach etwa zwei Wochen warten, bis testing stable wird.
In Anbetracht dessen, dass der Fehler wohl bereits (absichtlich oder unabsichtlich) behoben wurde, würde ich das erstmal ignorieren und die Energie in was anderes stecken.

kitebuggy
Beiträge: 25
Registriert: 01.07.2021 17:42:07

Re: PyQt5 event sender

Beitrag von kitebuggy » 17.07.2021 20:06:15

Ja, so sehe ich das jetzt auch, wenn testing in zwei Wochen stable wird, hat das effektiv keinen Mehrwert.


Hoffen wir, dass das Datum eingehalten wird.
Entschuldigung sid != testing. Habe da wohl etwas zu schnell geschrieben.

Vielen Dank für die Antworten.

Nur: Soll ich nun diesen Thread als gelöst angeben? Ist doch eher ein "workaround", obschon sich das Problem von selbst dann löst.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: PyQt5 event sender

Beitrag von eggy » 17.07.2021 20:16:08

Ich würd's erstmal so lassen, ist bisher ja keine echte Lösung.
Du könntest aber, wenn es dann soweit ist, noch mal berichten, ob das Update auch auf dem Rechner geholfen hat. Und dann ist vielleicht ein "[gelöst - durch Releasewechsel]" als Markierung ein Kompromiss?

kitebuggy
Beiträge: 25
Registriert: 01.07.2021 17:42:07

Re: PyQt5 event sender

Beitrag von kitebuggy » 17.07.2021 21:40:01

Ist 'ne gute Idee. Hoffenttlich denke ich noch daran ;-)

kitebuggy
Beiträge: 25
Registriert: 01.07.2021 17:42:07

Re: PyQt5 event sender

Beitrag von kitebuggy » 22.08.2021 21:03:20

Ich hab' dran gedacht ;-)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: [Gelöst - durch Releasewechsel] PyQt5 event sender

Beitrag von eggy » 22.08.2021 22:06:50

:mrgreen: :THX:

Antworten