Russian Qt Forum
Июля 01, 2025, 21:59 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Глобальные горячие клавиши.  (Прочитано 5997 раз)
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.023 секунд. Запросов: 19.