[Gelöst durch upgrade] PyQt5 event sender Debian Buster

Alles rund um die Programmierung mit Qt
Antworten
kitebuggy
Beiträge: 7
Registriert: 16. Juli 2021 22:30

[Gelöst durch upgrade] PyQt5 event sender Debian Buster

Beitrag von kitebuggy »

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 Kernelversion abhängig?

Vielen Dank für eine Antwort.
Zuletzt geändert von kitebuggy am 22. August 2021 20:55, insgesamt 1-mal geändert.
I want my office to be quiet. The loudest thing in the room - by far - should be the occasional purring of the cat.

Linus Torvalds
kitebuggy
Beiträge: 7
Registriert: 16. Juli 2021 22:30

Re: PyQt5 event sender Debian Buster

Beitrag von kitebuggy »

Beispielcode kann ich auch 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 dessen Text sauber angezeigt wird, steht stattdessen dort:
&Button1 was pressed
respektive
Button &2 was pressed

Das Zeichen & wird iregendwo in den Text gesetzt.
I want my office to be quiet. The loudest thing in the room - by far - should be the occasional purring of the cat.

Linus Torvalds
kitebuggy
Beiträge: 7
Registriert: 16. Juli 2021 22:30

Re: PyQt5 event sender Debian Buster

Beitrag von kitebuggy »

Hallo

Da Ende des Monats die jetzige Debian testing auf stable gehoben werden soll, und ich dann sowieso ein Upgrade der Disrti durchführe, hat sich dann das Problem durch das Distri-Upgrade von selbst gelöst. Ich werde berichten, ob es dann im stable-Zweig funktioniert.
I want my office to be quiet. The loudest thing in the room - by far - should be the occasional purring of the cat.

Linus Torvalds
veeman
Beiträge: 277
Registriert: 3. Oktober 2012 01:43
Kontaktdaten:

Re: PyQt5 event sender Debian Buster

Beitrag von veeman »

Normalerweise werden in Menüpunkten sowie andere Widgetelement 'und' Zeichen verwendet um das folgende Zeichen als Keyboard Shortcut zu markieren.

Möglicherweise geschieht dies bei deiner Benutzung Automatisch und dies ist die Ausgabe die du da siehst.
Antworten