首页 > 代码库 > 使用QStandardItemModel创建子节点
使用QStandardItemModel创建子节点
以QTreeView为例子,创建子节点可以为:
QStandardItemModel *goodsModel = new QStandardItemModel(0, 1,this); goodsModel->setHeaderData(0, Qt::Horizontal, tr("No"));//标题栏 ui->treeView->setModel(goodsModel); ui->treeView->setEditTriggers(QAbstractItemView::NoEditTriggers);//设置每行内容不可更改// QList<QStandardItem *> childItems;//放置子节点的容器 /*创建各个父节点*/ QStandardItem *item1 = new QStandardItem(QIcon(":/new/prefix1/find.png"), QString(tr("云宏信息"))); QStandardItem *item2 = new QStandardItem(QIcon(":/new/prefix1/cut.png"), QString(tr("销售中心"))); QStandardItem *item3 = new QStandardItem(QIcon(":/new/prefix1/copy.png"), QString(tr("研发中心"))); QStandardItem *item4 = new QStandardItem(QIcon(":/new/prefix1/asave.png"), QString(tr("开发"))); goodsModel->appendRow(item1); goodsModel->appendRow(item2); goodsModel->appendRow(item3); goodsModel->appendRow(item4);// /*把子节点放到childItems容器中*/// childItems.push_back(item1_1);// childItems.push_back(item1_2);// childItems.push_back(item1_3);// childItems.push_back(item1_4);// item1->appendRows(childItems);// childItems.clear();//清除容器,以便下次使用// QStandardItem *item2 = new QStandardItem(QString(tr("群组")));// goodsModel->appendRow(item2);// /*创建各个子节点*/// QStandardItem *item2_1 = new QStandardItem(QIcon(":/new/prefix1/undo.png"), QString(tr("知库群")));// QStandardItem *item2_2 = new QStandardItem(QIcon(":/new/prefix1/editor.png"), QString(tr("知库意见收集群")));// /*把子节点放到childItems容器中*/// childItems.push_back(item2_1);// childItems.push_back(item2_2);// item2->appendRows(childItems);// childItems.clear();ui->treeView->expandAll();
返回QStandardItemModel下所有item的内容代码:
QList<QStandardItem*> YunFile::returnTheItems(){ return goodsModel->findItems("*", Qt::MatchWildcard | Qt::MatchRecursive);}void YunFile::iterateOverItems(){ QList<QStandardItem*> list = returnTheItems(); foreach(QStandardItem* item, list) { qDebug()<<item->text(); // QModelIndex index = item->index(); // qDebug()<<index.internalPointer(); }}
PS:这都是使用Qt自带的模型绑定数据,开发过程中更多的则是自定义一个模型,不过QStandardItemModel还是可以作为测试数据来使用
使用QStandardItemModel创建子节点
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。