2011-01-07 2 views
20

Я создал графический интерфейс с помощью Qt Creator. То есть, перетащив виджеты. Теперь я хочу назначить клавиши быстрого доступа для всех кнопок. Может кто-нибудь здесь, пожалуйста, дайте мне знать, как это сделать? Заранее спасибо.Назначить клавиши быстрого доступа к кнопкам - Qt C++

ответ

42

Ваши кнопки, вероятно, имеют слот, подключенный к их сигналу clicked().

Чтобы добавить сочетания клавиш, вы просто подключите сигнал быстрого доступа activated() к тому же слоту.

В коде #include <QShortcut>, и тогда вы сможете добавить клавиши быстрого вызова для слота, как это:

QShortcut *shortcut = new QShortcut(QKeySequence("Ctrl+O"), parent); 
QObject::connect(shortcut, SIGNAL(activated()), receiver, SLOT(yourSlotHere())); 

Где родитель является родителем ярлыка (например, главное окно), yourSlotHere() это имя слота, который вы хотите использовать для вызова ярлыка, и receiver объект, где находится yourSlotHere().

Замените "Ctrl+O" на любой ярлык, который вы хотите назначить.

Дополнительную информацию можно найти на странице документации для QShortcut.

+2

Не утечка объекта 'shortcut' или его освобождение, поскольку мы указываем родительский? – Niklas

13

В качестве альтернативы, если клавиша быстрого доступа соответствует символу в тексте кнопки, вы можете предварительно скопировать & на этот символ. Если вы хотите буквально &, используйте & &.

3

Сегодня (Qt5.7), можно назначить ярлыки непосредственно в Qt Designer с помощью ярлыку свойство:

enter image description here

Довольно удобный .. Даже если немного багги: Я должен «Validate "ярлык, нажав на другое свойство того же виджета, прежде чем переключиться на другой виджет!

Но он работает.

Смежные вопросы