Есть такая проблема (пока не забыл Qt3.3.6).
На форме лежит пара QLineEdit и один QComboBox
В конструкторе формы завожу фильтр событий:
le_0->installEventFilter(this);
cb_0->installEventFilter(this);
le_1->installEventFilter(this);
и обработчик:
bool PassForm::eventFilter(QObject *target, QEvent *event)
{
int flag = 0;
if(target == le_0) flag = 1;
if(target == le_1) flag = 2;
if(target == cb_0) flag = 3;
if(event->type() == QEvent::FocusIn)
cout<<"Filter event : FocusIn : flag = "<<flag<<endl;
if(event->type() == QEvent::FocusOut)
cout<<"Filter event : FocusOut : flag = "<<flag<<endl;
return QDialog::eventFilter(target, event);
}
Так вот, когда мышкой на форме тыкаешься в эти виджеты, выпрыгивают соответствующие надписи. Кто фокус получил, кто фокус потерял. При этом LineEdit исправно эти сигналы отправляет, а подлый ComboBox ни в какую.
Хотя другие события (типа нажатия кнопок, раскрытие списка и прочее) отрабатывается нормально.
В чем может быть загвоздка?