У меня есть TreeView
в Qt Quick
и класс подкласса QStandardItemModel
. this.appendRow()
отлично работает в конструкторе модели.QStandardItemModel appendRow не работает после того, как был вызван конструктор
Однако, если я вызываю его после конструктора, например, как реакция на нажатие какой-либо кнопки, он ничего не делает.
(Также проверено this->rowCount()
, чтобы увидеть, может быть, он просто не отображается, но rowCount не увеличивается).
Я использую функцию addRootEntry, которую вы можете увидеть ниже, чтобы добавить QStandardItem
в корень.
void ProjectTreeModel::addRootEntry(const QString& name, const QString& type, const QString& icon)
{
QStandardItem rootEntry = new QStandardItem(name);
rootEntry->setData(icon, ProjectTreeModel_Role_Icon);
rootEntry->setData(type, ProjectTreeModel_Role_Type);
rootEntry->setData(name, ProjectTreeModel_Role_Name);
this->appendRow(rootEntry);
qDebug() << rootEntry; //Is not null
qDebug() << this->rowCount(); //Stays the same
}
Нет, к сожалению, это не работает. Элементы добавляются сейчас, но TreeView не обновляется. –