這裏是環境第一: 我有一個自定義的「屬性編輯器」,這是一個QGroupBox(從QWidget派生) 目前我有一個類,我們稱之爲「持有人」,其中有兩個屬性編輯器。從佈局中移除QLayoutItem,但稍後仍然使用它?
現在我有多個「持有者」類和一個垂直QVBoxLayout(稱爲邊欄)。 在此佈局中,我希望顯示當前選定Holder類的兩個屬性編輯器。
還有問題: 當用戶選擇另一個持有人類時,我希望先前選定的持有人類的Property Editors消失,並添加新選定持有人類的Property Editors。
選擇另一個Holder類一次。但是當我再次選擇第一個Holder類時,編輯似乎沒有改變。爲什麼? 「takeAt(..)」是否會破壞持有者類中的引用?我怎樣才能獲得理想的行爲?
下面是代碼,在此先感謝:
void App::setSelection(Holder * holder){
if(m_currentlySelected == holder) return;
m_viewer->sideBarRemoveAt(0);
m_viewer->sideBarInsertAt(0, holder->firstPropEditor);
m_viewer->sideBarRemoveAt(1);
m_viewer->sideBarInsertAt(1, holder->secondPropEditor);
m_currentlySelected = holder;
}
void QtViewer::sideBarRemoveAt(int i){
m_sideBar->m_layout->takeAt(i);
}
void QtViewer::sideBarInsertAt(int i, QWidget * widget){
m_sideBar->m_layout->insertWidget(i, widget);
}
對不起,您對。我刪除了我的評論。 – TonyK