QComboBox EventFilter для всплывающего окна

У меня небольшая проблема, мне нужно настроить фильтр событий на всплывающее окно QComboBox. Мне нужно поймать события, когда нажимаются левая и правая клавиши. Как я могу это сделать?

Благодарю вас!


person evghin    schedule 05.04.2012    source источник


Ответы (2)


Вам нужно установить eventFilter в представлении QComboBox() (http://qt-project.org/doc/qt-4.8/qcombobox.html#view).

person MrFox    schedule 28.05.2012

Вам может понадобиться добавить следующий код где-нибудь в вашем коде.

 void MyComboBox::keyPressEvent (QKeyEvent *event)
 {
     if (event->button() ==  Qt::Key_Left) 
     {
         // handle left key press
     } 
     if (event->button() ==  Qt::Key_Right) 
     {
         // handle right key press
     }
 }

Надеюсь это поможет!

person Hiren    schedule 05.04.2012
comment
Нет, это обрабатывает только клавиши, которые нажимались только в QCombobox, это одинаково, если я устанавливаю фильтр событий, но мне нужно перехватывать клавиши, которые нажимались в открытом всплывающем окне QCombobox. - person evghin; 05.04.2012
comment
Как насчет того, чтобы добавить тот же код в класс, где вы действительно хотите фиксировать нажатия клавиш? - person Hiren; 05.04.2012
comment
Я добавил в том же классе, нет результатов - person evghin; 05.04.2012