Seite 1 von 1

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

Verfasst: 16. Juli 2021 23:10
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.

Re: PyQt5 event sender Debian Buster

Verfasst: 17. Juli 2021 19:02
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.

Re: PyQt5 event sender Debian Buster

Verfasst: 17. Juli 2021 21:45
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.

Re: PyQt5 event sender Debian Buster

Verfasst: 18. Juli 2021 17:20
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.