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

news2024/12/26 11:38:50

此为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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2138700.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

text2sql(NL2Sql)综述《The Dawn of Natural Language to SQL: Are We Fully Ready?》

《The Dawn of Natural Language to SQL: Are We Fully Ready?》(github)出自2024年6月的NL2SQL(Natural language to SQL )综述论文。这篇论文尝试回答如下三个问题&#xff1a; 问题1:NL2SQL的现状是什么&#xff1f;(Q1:Where Are we Now?) 论文图1总结了近20年NL2SQL方法…

【移动端】菜单的自动展开与收回

前言 为了满足手机上菜单栏随用户移动&#xff0c;菜单的自动展示与隐藏&#xff0c;特此记录 基本原理 实现逻辑 window.addEventListener(‘scroll’, debouncedScrollHandler) – 监听文档视图滚动事件 document.querySelector(‘.header’) – 选择器匹配元素 创建show和h…

论文速递!Auto-CNN-LSTM!新的锂离子电池(LIB)剩余寿命预测方法

论文标题&#xff1a;A Data-Driven Auto-CNN-LSTM Prediction Model for Lithium-Ion Battery Remaining Useful Life 期刊信息&#xff1a;IEEE TII (中科院1区, JCR Q1, IF11.7) 引用&#xff1a;Ren L, Dong J, Wang X, et al. A data-driven auto-CNN-LSTM prediction m…

JavaScript web API part3

web API DOM 日期对象 > 得到当前系统的时间 new这个操作就是实例化 语法 const date new Date() or const date new Date(2004-11-3 08:00:00) 可以指定时间 > 可应用于通过系统时间和指定时间实现倒计时的操作 //得到当前时间const date new Date()console.lo…

多维时序 | Matlab基于BO-LSSVM贝叶斯优化最小二乘支持向量机数据多变量时间序列预测

多维时序 | Matlab基于BO-LSSVM贝叶斯优化最小二乘支持向量机数据多变量时间序列预测 目录 多维时序 | Matlab基于BO-LSSVM贝叶斯优化最小二乘支持向量机数据多变量时间序列预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 1.Matlab基于BO-LSSVM贝叶斯优化最小二乘支…

Vue介绍、窗体内操作、窗体间操作学习

系列文章目录 第一章 基础知识、数据类型学习 第二章 万年历项目 第三章 代码逻辑训练习题 第四章 方法、数组学习 第五章 图书管理系统项目 第六章 面向对象编程&#xff1a;封装、继承、多态学习 第七章 封装继承多态习题 第八章 常用类、包装类、异常处理机制学习 第九章 集…

树莓派5上手

1 安装系统 Raspberry Pi OS 是基于 Debian 的免费操作系统&#xff0c;针对 Raspberry Pi 硬件进行了优化。Raspberry Pi OS 支持超过 35,000 个 Debian 软件包。树莓派 5 可以安装各种系统&#xff0c;但是如果对于系统没有特殊的要求&#xff0c;还是安装 Raspberry Pi OS …

【MySQL】MySQL索引与事务的透析——(超详解)

前言 &#x1f31f;&#x1f31f;本期讲解关于MySQL索引事务&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;【MySQL】MySQL表的增删改查&#xff08;进阶篇&#xff09;——之查询操作&#xff08;超级详解&#xff09;-CSDN博客 &#x1f308;感…

CSP-CCF★★★201903-2二十四点★★★

目录 一、问题描述 二、解答 方法一&#xff1a;穷举法&#xff08;只列举了一部分&#xff09; 方法二&#xff1a;中缀表达式直接求值&#xff0c;两个栈&#xff0c;一个存放数值&#xff0c;一个存放符号 方法三&#xff1a;将中缀表达式转换为后缀来计算注意&#xff…

台风,也称为热带气旋,是一种在热带海洋上形成的强烈风暴系统。台风的形成需要满足以下几个条件:

台风&#xff0c;也称为热带气旋&#xff0c;是一种在热带海洋上形成的强烈风暴系统。台风的形成需要满足以下几个条件&#xff1a; 1. **温暖的海水**&#xff1a;台风通常在海面温度至少达到26.5C&#xff08;79.7F&#xff09;的海域形成&#xff0c;因为温暖的海水能够提供…

八股(8)——Spring,SpringBoot

八股&#xff08;8&#xff09;——Spring&#xff0c;SpringBoot 基础1.Spring 是什么&#xff1f;特性&#xff1f;有哪些模块&#xff1f;Spring 有哪些特性呢&#xff1f; 2.Spring 有哪些模块呢&#xff1f;3.Spring 有哪些常用注解呢&#xff1f;Web 开发方面有哪些注解呢…

利用模糊综合评价法进行数值评分计算——算法过程

1、‌模糊综合评价法概述 ‌模糊综合评价法是一种基于模糊数学的综合评价方法&#xff0c;它通过模糊数学的隶属度理论将定性评价转化为定量评价&#xff0c;适用于解决复杂、难以量化的问题。该方法具有结果清晰、系统性强的特点&#xff0c;能够处理多种因素制约下的综合评价…

热门数据恢复软件大盘点

现在大家的数据都喜欢存放在一些电子设备里保存吧。这样既方便存放&#xff0c;也方便我们查找。但是这些设备可能因为病毒、误删除等原因造成数据的丢失。这篇文章我将介绍几款类似易我数据恢复软件的数据恢复工具&#xff0c;减少为数据丢失给我们造成损失。 1.FOXIT数据恢复…

vue国际化

前言 现在的大公司都走国际化路线&#xff0c;我们应用程序也不例外。今天就在 Vue3 项目中整一个比较简单的国际化 背景 之前搞国际化的时候&#xff0c;也搜索了很多帖子&#xff0c;但是没有一个可以完整的实现。今天有空搞了一版&#xff0c;大家有什么问题欢迎留言探讨…

Java设计模式—面向对象设计原则(五) ----->迪米特法则(DP) (完整详解,附有代码+案例)

文章目录 3.5 迪米特法则(DP)3.5.1 概述3.5.2 案例 3.5 迪米特法则(DP) 迪米特法则&#xff1a;Demeter Principle&#xff0c;简称DP 3.5.1 概述 只和你的直接朋友交谈&#xff0c;不跟“陌生人”说话&#xff08;Talk only to your immediate friends and not to stranger…

【CSS in Depth 2 精译_031】5.3 Grid 网格布局的两种替代语法

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

Linux服务器配合Xshell+Tensorboard实现深度学习训练过程可视化

问题背景&#xff1a; 在深度学习领域&#xff0c;监控模型的训练过程是非常重要的。TensorBoard 是 TensorFlow 提供的一个可视化工具&#xff0c;可以帮助我们直观地理解模型的训练和验证过程。我们一般在 Windows 系统只需要在自己的浏览器输入localhost:6006就可以观察训练…

[Linux]:进程间通信(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 进程间通信介绍 1.1 进程间通信的概念 进程间通信简称IPC&#xff08;In…

[通信原理]绪论1:信号 × 通信系统

1、消息、信号与信息 消息&#xff1a; 通信系统要传输的对象&#xff0c;是具体的、物理上存在的东西。也是信息的载体。形式多种&#xff1a; 连续消息&#xff1a;语音、温度、活动图片.离散消息&#xff1a;数据、符号、文字. 信息&#xff1a; 消息中所蕴含的内容&…

MySQL练手题--公司和部门平均工资比较(困难)

一、准备工作 Create table If Not Exists Salary (id int, employee_id int, amount int, pay_date date); Create table If Not Exists Employee (employee_id int, department_id int); Truncate table Salary; insert into Salary (id, employee_id, amount, pay_date) va…