我有一个QMainWindow
实例化一个 QWidget 子类。我想用远程数据填充我的子类,所以我想阻止QWidget::show()
插槽,忽略它并发出请求,然后真正显示子类小部件。
我已经重新实现showEvent(QShowEvent *)
并让它忽略了该事件,qDebug()
向我展示了它的工作原理并且被忽略了,但仍然显示了小部件。
我错过了什么 ?谢谢您的帮助。
子类:
void Groups_Materials::showEvent(QShowEvent *event)
{
event->ignore();
qDebug() << "Event accepted: " << event->isAccepted(); // Return: false
}
它是如何被调用的:
this->m_groupsMaterialsWidget = new Groups_Materials(this->m_parent);
this->m_groupsMaterialsWidget->setWindowModality(Qt::ApplicationModal);
this->m_groupsMaterialsWidget->setAttribute(Qt::WA_DeleteOnClose);
this->m_groupsMaterialsWidget->show();
调用这些方法时控制台中写入的内容:
Event accepted: false