Название: Переопределение void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ). Отправлено: alexman от Май 16, 2011, 19:08 Есть QMainWindow с кучей чайлдов. Пытаюсь переопределить void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ), но не отрабатывает. Думаю это из-за чайлдов с фокусом ввода. Понятно, что можно установить фильтр для всех чайлдов, но что-то не хочется ;D Может есть более изящное решение?
Название: Re: Переопределение void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ). Отправлено: blood_shadow от Май 16, 2011, 20:07 Есть QMainWindow с кучей чайлдов. Пытаюсь переопределить void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ), но не отрабатывает. Думаю это из-за чайлдов с фокусом ввода. Понятно, что можно установить фильтр для всех чайлдов, но что-то не хочется ;D Может есть более изящное решение? фильтры мне кажется тут как раз и помогут,а что если переопределить QMailWindow::event()? Название: Re: Переопределение void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ). Отправлено: blood_shadow от Май 16, 2011, 20:09 есть еще грубее вариант с подклассом QApplication и перегрузкой QApplication::notify()
Название: Re: Переопределение void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ). Отправлено: alexman от Май 16, 2011, 22:29 Есть QMainWindow с кучей чайлдов. Пытаюсь переопределить void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ), но не отрабатывает. Думаю это из-за чайлдов с фокусом ввода. Понятно, что можно установить фильтр для всех чайлдов, но что-то не хочется ;D Может есть более изящное решение? фильтры мне кажется тут как раз и помогут,а что если переопределить QMailWindow::event()? Название: Re: Переопределение void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ). Отправлено: twp от Май 17, 2011, 13:25 а если установить фильтр событий в QApplication? Ведь события извлекаются из очереди сообщений именно в QApplication и потом уже распределяются по назначению.
Название: Re: Переопределение void QMainWindow::keyPressEvent( QKeyEvent* keyEvent ). Отправлено: alexman от Май 17, 2011, 13:46 Все просто оказалось...QShortcut
|