После прочтения некоторых примеров я все еще что-то здесь упускаю.
У меня есть Qtreeview для просмотра и QStandardItemModel для интерфейса данных, также использующий подкласс QSortFilterProxyModel, но я не знаю, насколько это уместно.
Это моя логика:
Сначала я создаю модель с QWidget в качестве родителя:
QStandardItemModel m_model = new QStandardItemModel(0,4,parent);
then setSourceModel(m_model) for the widget
Установить вид дерева с помощью QSortFilterProxyModel. как то так:
GroupProxyModel = new GroupSortFilterProxyModel;
GroupProxyModel->setDynamicSortFilter(true);
setSourceModel(createSubjectModel(parent));
ui.treeView_mainwindow->setModel(GroupProxyModel);
ui.treeView_mainwindow->setSortingEnabled(true);
Затем я заполняю первый ряд так:
QList<QStandardItem *> items;
items.insert(0,new QStandardItem("Test 0"));
items.at(0)->setEditable(false);
m_model->insertRow(0,items);
До сих пор все работало нормально, и я вижу строку с данными. Но когда мне нравится
добавить ребенка в строку, как это:
QModelIndex parentQModelIndex = m_model->item(0,0)->index();
m_model->insertRows(0,1,parentQModelIndex);
m_model->insertColumns(0,1,parentQModelIndex);
QModelIndex indexB = m_model->index(0, 0, parentQModelIndex);
m_model->setData(indexB,"Child test",Qt::DisplayRole);
Но я не вижу ребенка, почему?