我有一個QMainWindow
實例化QWidget子類。我想用遠程數據填充我的子類,所以我想阻止QWidget::show()
插槽,忽略它併發出請求,然後真正顯示子類小部件。如何防止QWidget :: show()與QWidget :: showEvent()
我已經重新執行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
不幸的是:'qDebug()<<「顯示事件是自發的:」<< event-> spontaneous();'打印'顯示事件是自發的:false' ...所以我會嘗試你的建議。 – Max13