正如标题所示,是否有一种方法可以让禁用的小部件接收鼠标事件?
我正在使用QWidget::setEnabled()
来更改小部件的外观,但我仍然希望收到他们的鼠标事件。在此先感谢:)
答案 0 :(得分:3)
您可以使用相关小部件上的事件过滤器执行此操作。见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);
}
}
即使按钮被禁用,这也会有效。