我找到了类似的question,但解决方案并没有解决我的疑问。
我有QDialog
个不同的项目,其中有一个指向QWidget
的指针。这已在对话框中充分集成。我想知道我是否可以在同一位置替换QWidget
。我不想隐藏它,我想删除当前的小部件以用新的小部件替换它。
答案 0 :(得分:0)
我采取的当前方法:
我使用指向当前小部件的指针(m_pCurrentWdgt
)。我在一个简单的布局(少数元素)中使用小部件,因此我可以手动控制小部件的位置。否则,我会使用额外的支持布局(m_pLayoutWidget
)将小部件放在我想要的位置。替换工作如下:当我想用新的替换当前小部件(pWidget
)时,我从支持布局中删除当前小部件并将新的小部件插入到先前的位置(例如N_WIDGET)。
void MyDialog::replaceWidget(QWidget *pWidget) {
this->m_pLayoutWidget->removeWidget(m_pCurrentWidget);
delete m_pCurrentWidget;
m_pCurrentWidget = pWidget;
this->insertWidget(N_WIDGET, m_CurrentWidget);
}
我想避免在这里使用布局,但至少它对我有用。