Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt Общие вопросы _ Не срабатывает QEvent::MouseButtonRelease

Автор: legat 22.3.2011, 19:16

Пытаюсь выполнить некоторые действия для переопределённого QTextEdit для событий QEvent::MouseButtonRelease и QEvent::KeyRelease.
Далее см. код:

bool TableTextEdit::eventFilter( QObject *target, QEvent *event ) {

    if ( event->type( ) == QEvent::MouseButtonRelease || event->type( ) == QEvent::KeyRelease ) {
        ...
        return true;
    }
    return QWidget::eventFilter( target, event );

}

Срабатывает только для QEvent::KeyRelease. Клики мыши игнорируются.
Конечно, можно использовать конструкцию
void TableTextEdit::mouseReleaseEvent( QMouseEvent *event ) {...}
.
Но интересно, почему не срабатывает фильтр.

Автор: abc 22.3.2011, 21:03

устанавливать фильтр нужно не на сам текстэдит, а на:
ui->textEdit->viewport()->installEventFilter(this);

если просто на текстэдит, релизэвент будет ловиться, но на кромке текстэдита, потыкай)

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)