C++ 查找QTreeWidgetItem是否为顶级
有没有办法确定我正在查看的C++ 查找QTreeWidgetItem是否为顶级,c++,qt,C++,Qt,有没有办法确定我正在查看的QTreeWidgetItem是否为顶级?如果项目为顶级(无父项),则当我尝试获取父项的文本时,程序崩溃。引用: 顶级和顶级之间的主要区别 项目和项目级别较低的项目 树是指顶级项没有 父项()。可以使用此信息 要区分项目之间的差异, 并且在插入时了解这一点很有用 以及从树中删除项目 我建议您检查QTreeWidgetItem的父项是否为NULL const int FIRST_NODE_INDEX = 0; QTreeWidget* pTreeWidget = new
QTreeWidgetItem
是否为顶级?如果项目为顶级(无父项),则当我尝试获取父项的文本时,程序崩溃。引用:
顶级和顶级之间的主要区别
项目和项目级别较低的项目
树是指顶级项没有
父项()。可以使用此信息
要区分项目之间的差异,
并且在插入时了解这一点很有用
以及从树中删除项目
我建议您检查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";
}
const int FIRST\u NODE\u INDEX=0;
QTreeWidget*pTreeWidget=新的QTreeWidget(此);
pTreeWidget->setColumnCount(1);
QList项目列表;
对于(int i=0;i<10;++i)
{
append(新的QTreeWidgetItem((QTreeWidget*)0,QStringList(QString(“项:%1”).arg(i));
}
pTreeWidget->insertTopLevelItems(0,ItemList);
如果(!ItemList.at(第一个节点索引)->parent())
{
qDebug()顶级项没有父项
bool isTopLevelItem( QTreeWidgetItem* aItem )
{
return ( aItem->parent() == nullptr );
}
或者使用lambda函数
void function()
{
// ...
auto isTopLevel = []( QTreeWidgetItem* aItem ){ return ( aItem->parent() == nullptr ); };
// ...
if ( isTopLevel( item ) )
{
// ...
}
}
bool isTopLevelItem( QTreeWidgetItem* aItem )
{
return ( aItem->parent() == nullptr );
}
void function()
{
// ...
auto isTopLevel = []( QTreeWidgetItem* aItem ){ return ( aItem->parent() == nullptr ); };
// ...
if ( isTopLevel( item ) )
{
// ...
}
}