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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Event не ловится, когда активно поле  (Прочитано 2169 раз)
AfK24
Гость
« : Апрель 12, 2016, 22:29 »

Есть слот
void MainWindow::keyPressEvent(QKeyEvent *event)
Который реагирует на нажатия некоторых клавиш
Но при этом, когда активно поле ввода, функция не выполняется

Можно ли сделать event активным на всех виджетах программы?
Записан
Bepec
Гость
« Ответ #1 : Апрель 12, 2016, 22:58 »

Вам нужно поставить фильтр событий на qApp.
Код:
void QObject::installEventFilter(QObject * filterObj)

Ваш код отлавливает события, которые относятся ТОЛЬКО к MainWindow. Фильтр же поможет отловить события всего приложения.
Записан
AfK24
Гость
« Ответ #2 : Апрель 13, 2016, 00:21 »

Кажется, добавил, но всё равно не работает

В конструктор MainWindow добавил
Код:
ui->input1->installEventFilter(this);
Где input1 - поле ввода

И добавил функцию
Код:
bool MainWindow::eventFilter(QObject *obj, QKeyEvent *event)
{
     MainWindow::test123(event);
   
}

Где test123 - функция обработки нажатия некоторых клавиш

                                      
« Последнее редактирование: Апрель 13, 2016, 00:29 от AfK24 » Записан
Bepec
Гость
« Ответ #3 : Апрель 13, 2016, 01:17 »

Я очень ясно и понятно написал куда и к кому надо добавить фильтр. Читайте внимательнее.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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