Deux raccourcis pour un QAbstractButton
-
05-07-2019 - |
Question
Je dois attribuer deux raccourcis à un QAbstractButton, mais je ne trouve pas le moyen de le faire.
Il semble que la seule méthode possible est QAbstractButton :: setShortcut (const QKeySequence & amp; key).
Est-ce possible?
La solution
QAbstractButton n'accepte qu'une séquence de raccourci. Essayez de donner un raccourci dans QtDesigner comme Alt + A & amp; Alt + Z et vous verrez que vous devez faire Alt + A ET Alt + Z pour exécuter le raccourci. Vous ne pouvez donc pas avoir 2 raccourcis comme vous le souhaitez.
Mais il existe une solution:
Tous les QObject
ont une fonction nommée événement
qui reçoit tous les événements. Vous pouvez créer votre propre classe qui hérite de votre bouton de classe ( QPushButton
, etc. ou directement à partir de QAbstractButton
si vous souhaitez avoir un bouton personnalisé) avec une liste de QShortcutSequence
(ou une paire si vous voulez seulement 2 raccourcis) et réimplémentez la fonction event
pour suivre le QShortcutEvent
. N'oubliez pas de libérer tous les autres événements pour qu'ils soient traités par les classes de parents.