Zwei Verknüpfungen für eine QAbstractButton
-
05-07-2019 - |
Frage
Ich brauche zwei Verknüpfungen zu einem QAbstractButton zuweisen, aber ich kann nicht einen Weg zu tun, dass finden.
Es scheint die einzige Methode ist QAbstractButton :: setShortcut (const QKeySequence & Taste).
Ist es möglich?
Lösung
QAbstractButton nur eine Abkürzung Sequenz akzeptieren. Versuchen Sie geben in QtDesigner wie Alt + A & Alt + Z abzukürzen, und Sie werden sehen, dass Sie Alt + A und Alt + Z auszuführen Verknüpfung zu tun haben. So können Sie nicht erreichen 2 Verknüpfungen haben, wie Sie wollen.
Aber es gibt eine Lösung:
Alle QObject
haben eine Funktion namens event
, dass alle Ereignisse empfängt. Sie können Ihre eigene Klasse erstellen, die von der Klasse Button erbt (QPushButton
etc. oder direkt von QAbstractButton
, wenn Sie eine persönliche Taste haben wollen) mit einer Liste von QShortcutSequence
(oder ein Paar, wenn Sie nur 2 Verknüpfungen wollen) und neu implementieren die Funktion des event
QShortcutEvent
zu verfolgen. Vergessen Sie nicht, alle anderen Ereignisse zu lösen seinen Prozess von den Eltern Klassen.