这里是环境第一: 我有一个自定义的“属性编辑器”,这是一个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