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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Глобальные горячие клавиши.  (Прочитано 5720 раз)
hardigan
Гость
« : Апрель 05, 2012, 05:05 »

Здравствуйте!

В C++ новичок, решил начать изучение с QT. Не получается сделать глобальные клавиши у приложения.

Может кто-нибудь выложить готовый пример приложения с глобальными клавишами (делал на основе GUI приложения Qt)?
Или понятно объяснить)) Спасибо!

Пробовал через Qxtlib, не получилось её установить на Qt, ещё читал что можно через WinApi registerHotKey(), но не понятно как отлавливать это событие.

(Qt Creator 2.4.1, Основан на Qt 4.7.4 (32-х битной)).
Записан
sidsukana
Гость
« Ответ #1 : Апрель 05, 2012, 06:37 »

Наверное не глобальные, а горячие.

Раз http://qt-project.org/doc/qt-4.8/qshortcut.html (создает шоткат горячую клавишу)
И два http://qt-project.org/doc/qt-4.8/QWidget.html (так как все виджеты унаследованы с QWidget то пользуемся методом setShortcutEnabled(id, enabled) где id = shortcut->id() для включения или выключения)
Связать шоткаты с действиями можно по их сигналам - например activated())
Записан
Bepec
Гость
« Ответ #2 : Апрель 05, 2012, 07:01 »

Скорее глобальные, чем горячие.

Стандартными средствами Qt не получится, зато Qxt имеет даже специальный класс для этого!

PS ну или если только windows - то WinApi.

Все приведённые варианты ищутся на 1 странице поиска по гуглу.
Записан
hardigan
Гость
« Ответ #3 : Апрель 05, 2012, 10:12 »

Мне достаточно только под windows. Искал, но заставить работать не получилось... Есть у кого рабочий пример?
Записан
Bepec
Гость
« Ответ #4 : Апрель 05, 2012, 10:36 »

1) Врёшь.
2) Не искал.
3) Моё сообщение читал невнимательно.
4) Даже погуглить поленился.
5) Если оно тебе нафиг ненадо, то зачем я тебе ссылку давать буду?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Апрель 05, 2012, 12:12 »

из Qxt добавляешь нужные классы в свой проект, и всё. Если чисто на win32 api, то например через RegisterHotKey и отлавливать события WM_HOTKEY внутри переопределённой функции QCoreApplication::winEventFilter. Второе в Qt не пробовал, пробовал только в чистом Win32 api приложении. Первое самое простое.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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