Imran NZ
Imran NZ

Reputation: 1347

Qt 4.4: disabled widgets receiving mouse events

As the title suggests, is there a way for a disabled widget to receive mouse events?

I'm using QWidget::setEnabled() for changing the appearance of widgets but I still want to receive their mouse events. Thanks in advance :)

Upvotes: 3

Views: 3330

Answers (1)

Arnold Spence
Arnold Spence

Reputation: 22272

You can do this with an event filter on the widget in question. See QObject::eventFilter(). Your implementation might look something like this:

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);
    }
}

This will work even if the button is disabled.

Upvotes: 2

Related Questions