Russian Qt Forum
Ноябрь 23, 2024, 08:29 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: [РЕШЕНО] Горячие клавиши в приложении  (Прочитано 6776 раз)
Alexorleon
Гость
« : Июль 24, 2013, 13:11 »

Здравствуйте, подскажите решение в следующем вопросе.

Как динамически организовать создание горячей клавиши? Объясняю подробно:

По аналогии с настройкой горячих клавиш в linux, нужно отловить комбинацию нажатых клавиш. Что нажал, то и подставилось в комбинацию (в строку). Ctrl+Alt+...
Копаю в сторону QAction, QKeySequence и QShortcut, но во всех примерах комбинация задается сразу.

Например так
QKeySequence(Qt::CTRL + Qt::Key_P);
или так
myShortcut= new QShortcut(Qt::SHIFT + Qt::Key_B,this);
connect(myShortcut, SIGNAL(activated()), this, SLOT(setCameraBack()));

А вот как реализовать это динамически? Возможно ли это стандартными средствами?
« Последнее редактирование: Июль 24, 2013, 16:40 от Alexorleon » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #1 : Июль 24, 2013, 13:35 »

keyPressEvent
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Alexorleon
Гость
« Ответ #2 : Июль 24, 2013, 13:46 »

keyPressEvent

То что keyPressEvent это понятно, есть ли в QKeySequence или QShortcut стандартный метод для считывания нажатий нескольких клавиш по keyPressEvent.
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #3 : Июль 24, 2013, 14:21 »

QKeySequence(keyEvent->key() + keyEvent->modifiers())

еще можно было погуглить, первые же ссылки выдают нужный результат:
http://qt-project.org/doc/note_revisions/273/455/view
http://stackoverflow.com/questions/6647970/how-can-i-capture-qkeysequence-from-qkeyevent-depending-on-current-keyboard-layo
« Последнее редактирование: Июль 24, 2013, 14:40 от kambala » Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
VPS
Гость
« Ответ #4 : Июль 24, 2013, 15:38 »

Если я правильно понял, то можно взять код, в исходниках QtCreator (как это работает, можно посмотреть внизу диалога Options - Keyboard).
Файл: qt-creator-src\src\plugins\coreplugin\dialogs\shortcutsettings.cpp
« Последнее редактирование: Июль 24, 2013, 15:40 от vps » Записан
Alexorleon
Гость
« Ответ #5 : Июль 24, 2013, 16:39 »

Огромное всем спасибо, а то уже велосипед начал изобретать.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.101 секунд. Запросов: 22.