crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Как закрыть приложение Qt по нажатию клавиши?
Гость_Racot_*
сообщение 3.3.2015, 21:41
Сообщение #1





Гости








    


Мне нужно чтобы приложение Qt закрывалось по нажатию определенной клавиши. Например Esc.

Не понятно мне потому что при нажатии клавиши событие нажатия передается в тот виджет который в фокусе. Для одного виджета я могу переопределить обработчик событий и завершить программу в этом обработчике. Но не буду же я переопределять обработчик для всех виджетов.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
arhohryakov
  опции профиля:
сообщение 4.3.2015, 8:40
Сообщение #2


Новичок


Группа: Новичок
Сообщений: 4
Регистрация: 14.1.2015
Пользователь №: 4315

Спасибо сказали: 3 раз(а)




Репутация:   0  


Создайте QAction. Назначте ему shortcut. Добавьте action в widget.
Если клавиша не обрабатывается виджетом, то она передаётся на обработку родителю.

http://doc.qt.io/qt-5/qwidget.html#keyPressEvent
http://doc.qt.io/qt-5/qaction.html#details
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
lanz
  опции профиля:
сообщение 4.3.2015, 9:04
Сообщение #3


Старейший участник
****

Группа: Участник
Сообщений: 690
Регистрация: 28.12.2012
Пользователь №: 3660

Спасибо сказали: 113 раз(а)




Репутация:   8  


Или можно установить event filter на инстанс QApplication, перехватывать в нем нажатия клавиш и завершать приложение/посылать сигнал.
http://qt-project.org/doc/qt-4.8/eventsand...l#event-filters
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 28.3.2024, 14:51