Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Как закрыть приложение Qt по нажатию клавиши?

Автор: Racot 3.3.2015, 21:41

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

Не понятно мне потому что при нажатии клавиши событие нажатия передается в тот виджет который в фокусе. Для одного виджета я могу переопределить обработчик событий и завершить программу в этом обработчике. Но не буду же я переопределять обработчик для всех виджетов.

Автор: arhohryakov 4.3.2015, 8:40

Создайте 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

Или можно установить event filter на инстанс QApplication, перехватывать в нем нажатия клавиш и завершать приложение/посылать сигнал.
http://qt-project.org/doc/qt-4.8/eventsandfilters.html#event-filters

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)