PyQt5 odchytávanie kláves šípka hore, dole, vľavo, vpravo

Sekcia: Programovanie 27.12.2020 | 18:13
Avatar bedňa LegacyIce-antiX  Administrátor

Rozhodol som sa konečne odskúšať PyQt5. Hneď prvý problém som mal s odchytávanie šípiek na klávesnici.

Metóda:

def keyPressEvent(self, event):
    print(">>>", event.key())

v pohode odchytáva všetky klávesy okrem šípiek.

Ako schodné riešenie mám teraz napísané toto a funguje to:

switch_left = QShortcut(QKeySequence(Qt.Key_Left), self)
switch_left.activated.connect(self.arrowLeft)
switch_right = QShortcut(QKeySequence(Qt.Key_Right), self)
switch_right.activated.connect(self.arrowRight)

def arrowLeft (self):
    print ("<<<")

def arrowRight (self):
    print (">>>")

Chcem sa spýtať, neexistuje nejaké správnejšie riešenie ako na to?

Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
    • Event Filters 29.12.2020 | 11:28
      Avatar Miroslav Bendík Gentoo  Administrátor

      Šípky a tabulátor sú klávesy používané na navigáciu medzi widgetmi. Väčšinou ho odchytáva widget na najvyššej úrovni. Predpokladám, že by sa to správne malo riešiť cez event filtre.

      • RE: Event Filters 29.12.2020 | 15:50
        Avatar bedňa LegacyIce-antiX  Administrátor

        To som skúšal aj predtým aj teraz zas a nejde. Zrejme mám dostatočne imúnny muzog na to pochopiť vo co go.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org
      • RE: Event Filters 29.12.2020 | 16:19
        Avatar bedňa LegacyIce-antiX  Administrátor

        Inak používam QMediaContent, QMediaPlayer a mám na ne tak trochu podozrenie, či ten event niekde netopia.

        Táto správa neobsahuje vírus, pretože nepoužívam MS Windows. http://kernelultras.org