带你0到1之QT编程:十二、视图宝典,点通views的任督二脉

此为QT编程的第十二谈!关注我,带你快速学习QT编程的学习路线

每一篇的技术点都是很很重要!很重要!很重要!但不冗余!

我们通常采取总-分-总和生活化的讲解方式来阐述一个知识点!

码农不易,各位学者学到东西请点赞支持支持

开始部分:

总:view视图组:QListView、QTreeView、TableView、QListWidget、QTreeWidget、QTableWidget。

分:

一、QListView的简单应用

1.引入头文件

2.创建QListView对象

3.用QStringList来存放数据

4.用数据模型进行展示

5.连接槽函数

6.效果图如下:

二、QTreeView的简单应用

1.引入头文件

2.创建树视图函数,创建三级节点

void Widget::InitTreeViewFunc()
{
    //构造model展示数据
    sitemModel=new QStandardItemModel(ui->treeView);
    sitemModel->setHorizontalHeaderLabels(QStringList()<<QStringLiteral("编号")<<QStringLiteral("初中部|高中部"));

    //创建一级节点,加入到sitemModel中
    QList<QStandardItem*>item1;
    QStandardItem *item1_1=new QStandardItem(QString::number(1));
    QStandardItem *item1_2=new QStandardItem("初中部");
    item1_1->setFlags(item1_1->flags()&~Qt::ItemIsSelectable);//禁用选择
    item1.append(item1_1);
    item1.append(item1_2);
    sitemModel->appendRow(item1);

    QList<QStandardItem*>item5;
    QStandardItem *item5_1=new QStandardItem(QString::number(1));
    QStandardItem *item5_2=new QStandardItem("高中部");
    item5_1->setFlags(item1_1->flags()&~Qt::ItemIsSelectable);//禁用选择
    item5.append(item5_1);
    item5.append(item5_2);
    sitemModel->appendRow(item5);

    //创建二级节点,并添加到一级节点
    QList<QStandardItem*>item2;
    QStandardItem *item2_1=new QStandardItem(QString::number(2));
    QStandardItem *item2_2=new QStandardItem("一年级");

    item2.append(item2_1);
    item2.append(item2_2);
    //只有第一个添加的QStandardItem才能作为二级节点的挂载点
    item1_1->appendRow(item2);

    //创建两个三级节点,并添加到二级节点
    QList<QStandardItem*>item3;
    QStandardItem *item3_1=new QStandardItem(QString::number(3));
    QStandardItem *item3_2=new QStandardItem("一班");

    item3.append(item3_1);
    item3.append(item3_2);
    item2_1->appendRow(item3);

    QList<QStandardItem*>item4;
    QStandardItem *item4_1=new QStandardItem(QString::number(3));
    QStandardItem *item4_2=new QStandardItem("二班");

    item4.append(item4_1);
    item4.append(item4_2);
    item2_1->appendRow(item4);



    ui->treeView->setModel(sitemModel);
}

3.创建点击的槽函数

4.连接槽函数

5.效果图如下:

三、TableView的简单应用

1.引入头文件

2.在,ui文件添加table view控件

3.创建tableView视图的构建函数

4.实现函数体

void Widget::InitTableViewFunc()
{
    //1.添加表头,准备数据模型
    QStandardItemModel *stuModel=new QStandardItemModel();
    stuModel->setHorizontalHeaderItem(0,new QStandardItem(QObject::tr("学号")));
    stuModel->setHorizontalHeaderItem(1,new QStandardItem(QObject::tr("姓名")));
    stuModel->setHorizontalHeaderItem(2,new QStandardItem(QObject::tr("性别")));
    stuModel->setHorizontalHeaderItem(3,new QStandardItem(QObject::tr("成绩")));

    //2.绑定到ui的tableView
    ui->tableView->setModel(stuModel);
    ui->tableView->resize(700,500);

    //3.设备表格列的宽度
    ui->tableView->setColumnWidth(0,200);

    //4.添加数据信息
    stuModel->setItem(0,0,new QStandardItem("2021001"));
    stuModel->setItem(0,1,new QStandardItem("张三"));
    stuModel->setItem(0,2,new QStandardItem("男"));
    stuModel->setItem(0,3,new QStandardItem("714"));

    stuModel->setItem(1,0,new QStandardItem("2022002"));
    stuModel->setItem(1,1,new QStandardItem("小花"));
    stuModel->setItem(1,2,new QStandardItem("女"));
    stuModel->setItem(1,3,new QStandardItem("720"));

     stuModel->setItem(2,0,new QStandardItem("2022003"));
     stuModel->setItem(2,1,new QStandardItem("小妮"));
     stuModel->setItem(2,2,new QStandardItem("女"));
     stuModel->setItem(2,3,new QStandardItem("657"));

     ui->tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);//禁止编辑

     //降序第四列排序操作
     stuModel->sort(3,Qt::DescendingOrder);
}

5.实现效果图如下:

四、QListWidget的简单应用

1.导入相关头文件

2.在.ui文件添加list widget控件

3.两种导入方法

4.效果图如下:

五、QTreeWidget的简单应用

1.引入头文件

2.在.ui中添加treeWidget控件

3.添加顶级节点,并设置其属性

4.将二级节点添加到一级节点

5.模仿上面两个步骤,丰富数据内容

6.效果图如下:

六、QTableWidget的简单应用

1.在.ui添加TableWidget控件

2.设置行和列

3.设置水平表头

4.使用QList来存放数据信息

5.用循环来赋值表格

6.效果图如下:

总:在开发中,视图控件主要用于展示数据。而且在数据量多的时候用view控件,数据量少的时候用widget控件。

 学习链接:https://xxetb.xetslk.com/s/3Kif2D

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值