替换QWidgets

时间:2014-06-17 19:25:44

标签: qwidget

我找到了类似的question,但解决方案并没有解决我的疑问。

我有QDialog个不同的项目,其中有一个指向QWidget的指针。这已在对话框中充分集成。我想知道我是否可以在同一位置替换QWidget。我不想隐藏它,我想删除当前的小部件以用新的小部件替换它。

1 个答案:

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

我想避免在这里使用布局,但至少它对我有用。