Есть ли способ, которым я могу узнать если QTreeWidgetItem
Я смотрю на, верхний уровень или нет? У меня есть катастрофический отказ программы, когда я пытаюсь взять текст родителя, если объект является верхним уровнем (никакой родитель).
Цитирую документацию:
Основное различие между элементами верхнего уровня элементами и элементами на более низких уровнях дерева заключается в том, что у элемента верхнего уровня нет parent(). Эта информация может быть использована для различения элементов, и ее полезно знать при вставке и удалении элементов из дерева.
if (!node.parent()) {
// top-level item
}
Я бы посоветовал вам проверить, является ли родительский элемент QTreeWidgetItem NULL.
const int FIRST_NODE_INDEX = 0;
QTreeWidget* pTreeWidget = new QTreeWidget(this);
pTreeWidget->setColumnCount(1);
QList<QTreeWidgetItem *> ItemList;
for (int i = 0; i < 10; ++i)
{
ItemList.append(new QTreeWidgetItem((QTreeWidget*)0, QStringList(QString("item: %1").arg(i))));
}
pTreeWidget->insertTopLevelItems(0, ItemList);
if(!ItemList.at(FIRST_NODE_INDEX)->parent())
{
qDebug() << "is TopLevel";
}
Надеюсь, это поможет!