Название: Qt и события (QEvent) Отправлено: admin_007 от Ноябрь 13, 2007, 10:59 Помогите плиз.
Мне надо перехватить нажатие кнопки мышки на tableView. сообщение "ev" работает во все случаях (когда нажимаю на клавиатуру и когда нажимаю на мышку) Но при нажатии на мышку не выводиться сообщение: "m_ev". Т.е. условие не выполняется. Что то в строке: QEvent::MouseButtonPress. Если я ее заменю на QEvent::KeyPress то все работает. Почему же с мышкой не работает? Вот следующий код: bool MyClass::eventFilter(QObject* target, QEvent* event) { if(target == tableView1) { cout << "ev\n"; if(event->type() == QEvent::MouseButtonPress) { cout << "m_ev\n"; return QWidget::eventFilter(target, event) } } return QWidget::eventFilter(target, event) } Спасибо. Название: Re: Qt и события (QEvent) Отправлено: pastor от Ноябрь 13, 2007, 11:05 Попробуйте повесить фильтр на viewport()
Название: Re: Qt и события (QEvent) Отправлено: admin_007 от Ноябрь 13, 2007, 11:23 Что это такое?
Название: Re: Qt и события (QEvent) Отправлено: pastor от Ноябрь 13, 2007, 14:14 Очевидно, сейчас вы установили фильтр таким образом:
tableView1->installEventFilter(this); попробуйте сделать вот так: tableView1->viewport()->installEventFilter(this); ЗЫ: Что такое viewport читаем в ассистанте Название: Re: Qt и события (QEvent) Отправлено: Dodge от Ноябрь 13, 2007, 14:31 А не проще mousePressEvent переопределить?
или необходимо ловить именно чужой евент? |