【发布时间】:2016-01-04 01:53:38
【问题描述】:
_inputfileModel 是QStandardItemModel 类型的指针,我想使用它的成员函数children() 来获取子项。但是在下面的代码中,
int childrenNum = _inputfileModel->children().size(); childrenNum 的结果不是 1 而是 0。但是当我使用 hasChildren() 时,返回值为 true。谁能解释为什么?函数children() 是返回顶级子级还是所有子级?
void InputTree::addTreeNode(TreeNode &node){
QStringList inputImgList = node.picturePathList;
int num = inputImgList.size();
if( num < 1){ return ;}
QStandardItem *fatherItem = new QStandardItem;
fatherItem->setIcon(node.fatherIcon);
fatherItem->setText(node.fatherNodeName);
fatherItem->setData(FOLDER,ItemTypeRole);
for( int i = 0; i < num; ++i)
{
QStandardItem *pictureItem = new QStandardItem;
pictureItem->setText(node.imageNodeName.at(i));
pictureItem->setIcon(node.imgIcon);
pictureItem->setData(PICTURE,ItemTypeRole);
fatherItem->appendRow(pictureItem);
}
_inputfileModel->appendRow(fatherItem);
bool has_child = false;
has_child = _inputfileModel->hasChildren();
int childrenNum = _inputfileModel->children().size();
}
【问题讨论】: