Найдите, является ли QTreeWidgetItem верхним уровнем

Есть ли способ, которым я могу узнать если QTreeWidgetItem Я смотрю на, верхний уровень или нет? У меня есть катастрофический отказ программы, когда я пытаюсь взять текст родителя, если объект является верхним уровнем (никакой родитель).

6
задан ThomasMcLeod 11 January 2016 в 05:35
поделиться

2 ответа

Цитирую документацию:

Основное различие между элементами верхнего уровня элементами и элементами на более низких уровнях дерева заключается в том, что у элемента верхнего уровня нет parent(). Эта информация может быть использована для различения элементов, и ее полезно знать при вставке и удалении элементов из дерева.

if (!node.parent()) {
    // top-level item
}
26
ответ дан 8 December 2019 в 02:45
поделиться

Я бы посоветовал вам проверить, является ли родительский элемент 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";
}

Надеюсь, это поможет!

3
ответ дан 8 December 2019 в 02:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: