Qt的MVC模型/视图编程(二)——标准模型的简单应用

        上一篇文章《Qt的MVC模型/视图编程(一)》介绍了MVC模型/视图编程的基础知识;这一篇将讲解MVC模型/视图编程的基础例子,以更好的理解标准模式的使用;

在上一篇文章中知道一个模式可以对应多个视图;对应的程序如下所示:

    m_tableView.setModel(&m_model);
    m_listView.setModel(&m_model);
    m_treeView.setModel(&m_model);

把模型设置到视图中时,接下来就可以把数据设置到模型中,模型中的数据就自然会把数据显示到视图中;在设置数据中还可以设置数据对应的角色;对应的程序如下所示:

    QStandardItem* root = m_model.invisibleRootItem();
    QStandardItem* itemA = new QStandardItem();
    QStandardItem* itemB = new QStandardItem();
    QStandardItem* itemC = new QStandardItem();
    QStandardItem* itemChild = new QStandardItem();

/*****************设置数据*****************************/
    itemA->setData("A", Qt::DisplayRole);
    itemA->setData("Tip A", Qt::ToolTipRole);

    itemB->setData("B", Qt::DisplayRole);
    itemB->setData("Tip B", Qt::ToolTipRole);

    itemC->setData("C", Qt::DisplayRole);
    itemC->setData("Tip C", Qt::ToolTipRole);

    itemChild->setData("Child", Qt::DisplayRole);
    itemChild->setData("Tip Child", Qt::ToolTipRole);

    itemC->setChild(0, 0, itemChild);

    root->setChild(0, 0, itemA);
    root->setChild(0, 1, itemB);
    root->setChild(1, 0, itemC);

把数据设置到模型中,为了从模型中获取数据时就必须用索引来获取;获取的代码如下所示:

/*****************模型数据的索引*****************************/
    QModelIndex index = m_model.index(0,0);
    qDebug() <<"index(0,0)" << index.data().toString();

    QModelIndex indexC = m_model.index(1,0);
    QModelIndex indexChild =  m_model.index(0,0,indexC);//获取itemC的子项
    qDebug() <<"indexChild(0,0)" << indexChild.data().toString();

完整的例子程序在下面的链接中:

完整的例子代码下载

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

划清界限

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值