Два ярлыка для QAbstractButton
-
05-07-2019 - |
Вопрос
Мне нужно назначить два ярлыка для QAbstractButton, но я не могу найти способ сделать это.
Кажется, единственным методом является QAbstractButton :: setShortcut (const QKeySequence & amp; key).
Возможно ли это?
Решение
QAbstractButton принимает только одну последовательность ярлыков. Попробуйте дать ярлык в QtDesigner как Alt + A & amp; Alt + Z, и вы увидите, что вы должны сделать Alt + A AND Alt + Z, чтобы выполнить ярлык. Таким образом, вы не можете добиться, чтобы иметь 2 ярлыка, как вы хотите.
Но есть решение:
Все QObject
имеют функцию с именем событие
, который получает все события. Вы можете создать свой собственный класс, который наследуется от кнопки вашего класса ( QPushButton
и т. Д. Или непосредственно от QAbstractButton
, если вы хотите иметь персонализированную кнопку) со списком QShortcutSequence
(или пару, если вам нужны только 2 ярлыка) и повторно реализуйте функцию event
для отслеживания QShortcutEvent
. Не забудьте опубликовать все другие события, которые будут обрабатываться родительскими классами.