模型、视图

#include <QApplication>
#include <QStandardItemModel>
#include <QTreeView>
#include <QModelIndex>
#include <QDebug>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QStandardItemModel model;//创建标准项模型,存储自定义数据
    //获取模型的根项(Root Item),根项是不可见的
    QStandardItem *parent_item = model.invisibleRootItem();
    //创建标准项item,并设置文本、图标和工具提示
    QStandardItem *item_0 = new QStandardItem;
    item_0->setText("A");
    QPixmap pixmap_0(50,50);
    pixmap_0.fill("red");
    item_0->setIcon(QIcon(pixmap_0));
    item_0->setToolTip("indexA");
    parent_item->appendRow(item_0);//将创建的标准项作根项的子项
    parent_item = item_0;//将创建的标准项作为新的父项
    QStandardItem *item_1 = new QStandardItem;
    item_1->setText("B");
    QPixmap pixmap_1(50,50);
    pixmap_1.fill("blue");
    item_1->setIcon(QIcon(pixmap_1));
    item_1->setToolTip("indexB");
    parent_item->appendRow(item_1);
    //创建新的标准项,使用另一种方法来设置文本、图标和工具提示
    QStandardItem *item_2 = new QStandardItem;
    QPixmap pixmap_2(50,50);
    pixmap_2.fill("green");
    item_2->setData("C", Qt::EditRole);
    item_2->setData("indexC",Qt::ToolTipRole);
    item_2->setData(QIcon(pixmap_2),Qt::DecorationRole);
    parent_item->appendRow(item_2);

    QTreeView view;
    view.setModel(&model);
    view.show();
    //获取item_0的索引并输出item_0的子项数目、输出item_1的显示文本和工具提示
    QModelIndex indexA = model.index(0,0,QModelIndex());//行号、列号、父模型索引
    qDebug() << "indexA row count:" << model.rowCount(indexA);
    QModelIndex indexB = model.index(0,0,indexA);
    qDebug() << "indexB text:" << model.data(indexB,Qt::EditRole).toString();
    qDebug() << "indexB toolTip:" << model.data(indexB, Qt::ToolTipRole).toString();

    return a.exec();
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值