Сначала среда
Теперь у меня есть несколько классов "Holder" и один вертикальный QVBoxLayout (называемый Sidebar).В этом макете я хочу, чтобы отображались оба редактора свойств текущего выбранного класса держателей.
И есть проблема: когда пользователь выбирает другой класс держателей, мне нужны редакторы свойств ранее выбранного держателяисчезнуть и добавьте редакторы свойств нового выбранного класса Holder.
Выбор другого класса 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);
}