码迷,mamicode.com
首页 > 其他好文 > 详细

使用QStandardItemModel创建子节点

时间:2014-10-18 13:51:05      阅读:301      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   ar   使用   for   sp   数据   div   

以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创建子节点

标签:style   blog   color   ar   使用   for   sp   数据   div   

原文地址:http://www.cnblogs.com/zw-h/p/4032940.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!