Qt 4.4: отключенные виджеты, получающие события мыши - PullRequest
3 голосов
/ 12 декабря 2011

Как видно из заголовка, есть ли способ для отключенного виджета получать события мыши?

Я использую QWidget::setEnabled() для изменения внешнего вида виджетов, но я все еще хочу получать события мыши.Заранее спасибо:)

1 Ответ

3 голосов
/ 12 декабря 2011

Вы можете сделать это с помощью фильтра событий на соответствующем виджете.Смотрите QObject :: eventFilter () .Ваша реализация может выглядеть примерно так:

bool MainWindow::eventFilter(QObject *obj, QEvent *event)
{
    if (ui->pushButton)
    {
        if (event->type() == QEvent::MouseButtonRelease)
        {
            qDebug() << "mouse button";
            return true;
        } else
        {
            return false;
        }
    } else
    {
        // pass the event on to the parent class
        return QMainWindow::eventFilter(obj, event);
    }
}

Это будет работать, даже если кнопка отключена.

...