Qt 学习第十天:小项目:QListWidget的使用

一、页面布局

二、命名按钮

双击按钮可以修改显示中的文字(例如:改成“全选”),objectName是要改成程序员所熟悉的名字(英文,符合代码规范)方便修改和书写代码,一看就能看懂的

三、icon(图标)的导入

右击项目文件夹 >> 选择一个模板 >> Qt >> Qt Resource File >> 文件名命名为res或者resource

创建后出现这个界面: 把prefix改成/

资源文件将被映射到根目录。这意味着在程序中使用资源(icon)时,不需要再添加前缀路径,可以直接使用资源文件的名称来访问


icon-32图标

右键就可以复制资源路径

四、往QListWidget添加课程

    //添加科目QStringList list = {"语文", "数学", "英语", "物理", "化学", "生物", "历史", "地理" };for(int i=0; i<list.size(); i++){//QListWidgeItem就是列表项,我们可以对其添加文本QListWidgetItem *item = new QListWidgetItem(); //列表项item->setText(list[i]);//添加图标QIcon icon1;icon1.addFile("://icon-32.png");item->setIcon(icon1);//添加复选框item->setCheckState(Qt::Unchecked);//设置字体大小QFont font;font.setPointSize(30);item->setFont(font);ui->listWidget->addItem(item); //列表项加入listWidget中ui->listWidget->setIconSize(QSize(30,30)); //设置图标大小ui->listWidget->setSpacing(10); //对四周都会产生留白效果}

五、设置图标模式

//设置为图标模式
void MainWindow::on_IconMode_btn_clicked()
{ui->listWidget->setViewMode(QListView::IconMode); //设置为图标模式ui->listWidget->setSpacing(10); //对四周都会产生留白效果ui->listWidget->setResizeMode(QListView::Adjust); //自适应窗口大小
}

六、设置列表模式

//设置为列表模式
void MainWindow::on_TableMode_btn_clicked()
{ui->listWidget->setViewMode(QListView::ListMode); //设置为列表模式
}

【运行结果】

七、实现添加课程

会自动生成槽函数

//添加课程
void MainWindow::on_Add_btn_clicked()
{//如果文本不为空if(ui->lineEdit->text().isEmpty() == false){QListWidgetItem *item = new QListWidgetItem(); //列表项item->setText(ui->lineEdit->text().trimmed());//添加图标QIcon icon1;icon1.addFile("://icon-32.png");item->setIcon(icon1);//添加复选框item->setCheckState(Qt::Unchecked); //设置为未选中状态//设置字体大小QFont font;font.setPointSize(30);item->setFont(font);ui->listWidget->addItem(item); //列表项加入listWidget中ui->listWidget->setIconSize(QSize(30,30)); //设置图标大小ui->lineEdit->clear(); //清除输入框中的文本}
}

八、实现删除课程

跟上面一样,代码不同

//删除课程
void MainWindow::on_Delete_btn_clicked()
{int count = ui->listWidget->count(); //获取列表项个数for(int i=count-1; i>=0; i--) //这个需要从后往前删除,否则会越界崩溃{if(ui->listWidget->item(i)->checkState() == Qt::Checked)//如果被选中{auto item = ui->listWidget->takeItem(i); //删除会返回这个值的指针,但是内存没有真正的删除delete item;}}
}

九、实现全选课程

跟上面一样,代码不同

//全选课程
void MainWindow::on_Allchoose_btn_clicked()
{int count = ui->listWidget->count(); //获取列表项个数for(int i=count-1; i>=0; i--){ui->listWidget->item(i)->setCheckState(Qt::Checked); //设置为选中状态}
}

【运行结果】

参考文章:【qt】QListWidget 组件-CSDN博客

补充知识点:

vocabulary,启动!

 

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

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

相关文章

直接从U盘里删除文件能找回吗?不慌!教你4种恢复技巧

在数字化时代&#xff0c;U盘已成为我们日常生活和工作中不可或缺的数据存储工具。然而&#xff0c;随着使用频率的增加&#xff0c;误删文件的情况也时有发生。当文件从U盘中被直接删除时&#xff0c;许多人可能会感到绝望&#xff0c;认为这些文件已经永久丢失。 但实际上&am…

C#基础(14)冒泡排序

前言 其实到上一节结构体我们就已经将c#的基础知识点大概讲完&#xff0c;接下来我们会讲解一些关于算法相关的东西。 我们一样来问一下gpt吧&#xff1a; Q:解释算法 A: 算法是一组有序的逻辑步骤&#xff0c;用于解决特定问题或执行特定任务。它可以是一个计算过程、一个…

Python全网最全基础课程笔记(十一)——字符串所有操作,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

本专栏系列为Pythong基础系列&#xff0c;每篇内容非常全面&#xff0c;包含全网各个知识点&#xff0c;非常长&#xff0c;请耐心看完。 每天都会更新新的内容&#xff0c;搜罗全网资源以及自己在学习和工作过程中的一些总结&#xff0c;可以说是非常详细和全面。 以至于为什么…

麦克风是不是越贵越好?选购无线麦克风需注意的五个关键点

相信接触过短视频或者直播行业的朋友们都知道麦克风的重要性&#xff0c;这是拍摄中很常用的设备&#xff0c;而麦克风的好坏也决定了整体音质的效果如何。不过有些刚入门的朋友们对麦克风并不是很了解&#xff0c;认为麦克风是不是越贵就越好&#xff1f; 其实并不是&#xff…

电抗器可以减少发电机阻力吗

电抗器通常用于电力系统中主要为了限制短路电流、改善功率因数和抑制谐波等&#xff0c;而不是直接减少发电机的阻力。具体来说&#xff0c;电抗器在发电机系统中的作用主要包括以下几个方面&#xff1a; 1. 限制短路电流 电抗器&#xff08;特别是限流电抗器&#xff09;可以…

22:SPI一:简单的使用

SPI简单的使用 1、什么是SPI2、数据通信2.1&#xff1a;5个重要参数2.2&#xff1a;4种传输模式 3、程序模拟SPI通信时序3、片上外设SPI通信时序 1、什么是SPI SPI是一种同步的&#xff0c;全双工&#xff0c;支持总线挂载多设备的通信协议。它特别适用于高效&#xff0c;快速…

激光粉尘传感器:筑牢粮仓安全防线,有效应对粮食粉尘爆炸高危风险

随着我国农业的持续发展和粮食产量的稳步提升&#xff0c;2023年全国粮食总产量达到了13908.2亿斤&#xff0c;这一丰硕成果不仅保障了国家的粮食安全&#xff0c;也对粮食的储备、加工、运输等环节提出了更高的要求。然而&#xff0c;在粮食产业链的各个环节中&#xff0c;粮食…

11_Python函数基本概念和示例

函数 函数是组织代码、提高代码复用性的基本工具。一个函数是组织好的、可重复使用的、用来实现单一或相关联功能的代码段。函数类型&#xff1a;内置函数、自定义函数 定义函数 在 Python 中&#xff0c;使用 def 关键字来定义一个函数。 函数可以有参数&#xff0c;也可以…

虚拟背景扣像SDK解决方案,电影级抠像技术

美摄科技&#xff0c;作为影像技术领域的领航者&#xff0c;凭借其革命性的虚拟背景抠像SDK解决方案&#xff0c;正以前所未有的方式&#xff0c;重新定义电影级背景抠像技术&#xff0c;让直播与视频制作迈入全新境界。 电影级抠像技术&#xff0c;重塑视觉盛宴 美摄科技的虚…

Appium环境搭建及元素定位

Appium是一个开源测试自动化框架&#xff0c;可用于原生&#xff0c;混合和移动Web应用程序测试。它使用WebDriver 协议驱动iOS&#xff0c;Android和Windows应用程序。 01 环境搭建步骤 Appium环境安装&#xff1a; 第一步安装 appium 桌面版客户端 Appium-1.12.1.dmg(MAC…

比亚迪高歌猛进背后,高端市场攻坚与出海风险并存

比亚迪高速扩张的繁荣表象之下&#xff0c;仍遭遇高端市场挑战&#xff0c;全球化征程面临可持续性考验。 转载&#xff1a;科技新知 原创 作者丨颜曌 编辑丨蕨影 比亚迪的发展史&#xff0c;堪称我国新能源汽车品牌的缩影。如今在全球新能源市场越来越有影响力的比亚迪&…

自动化测试需要学什么【附学习路线和学习教程】

随着自动化测试行业的薪酬越来越高&#xff0c;平均月薪早在很多年前就已破万&#xff0c;也有越来越多的人愿意投身测试行业&#xff0c;成为一名测试工程师&#xff0c;这些人当中也有相当多的一部分是测试行业的小白&#xff0c;并不知道自动化测试需要学习哪些内容 在放上…

第二届Apache Flink极客挑战赛冠军比赛攻略_SkyPeaceLL队

关联比赛: 第二届 Apache Flink极客挑战赛 赛题介绍 指定的数据集一、病例行动数据集 病例历史行动数据集&#xff08;训练集1&#xff09; 1M确诊病例数据 &#xff08;测试集1&#xff09; 500实时病例行动数据集&#xff08;测试集2&#xff09; 1000二、天猫精灵行为数据…

【服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)

文章目录 一、阿里云OSS对象存储服务介绍二、服务开通与使用准备1、准备工作2、开通OSS云服务&#xff08;新用户免费使用三个月&#xff09;3、创建存储空间bucket4、创建并保存Accesskey5、配置访问凭证AK & SK&#xff08;系统环境变量&#xff09; 三、阿里云OSS使用步…

codemirror 代码在线编辑器基本使用

CodeMirror 是一个强大的基于浏览器的文本编辑器组件&#xff0c;主要用于网页中创建可编辑的源代码区域&#xff0c;特别适用于编写和展示程序代码。它支持多种编程语言的语法高亮、代码折叠、自动补全、查找替换等多种高级编辑特性。 npm install vue-codemirror --save 或者…

张恒汝的个人简介:招生宣传用

张恒汝&#xff0c;男&#xff0c;九三学社社员&#xff0c;博士&#xff0c;教授&#xff0c;硕士生导师&#xff0c;机器学习研究中心副主任&#xff0c;四川省学术和技术带头人后备人选&#xff0c;中国科协科技人才奖项评审专家&#xff0c;四川省网络安全与信息化技术专家…

HarmonyOS开发实战( Beta5.0)使用GTest测试C++案例

鸿蒙HarmonyOS开发往期必看&#xff1a; HarmonyOS NEXT应用开发性能实践总结 最新版&#xff01;“非常详细的” 鸿蒙HarmonyOS Next应用开发学习路线&#xff01;&#xff08;从零基础入门到精通&#xff09; 介绍 本示例主要介绍如何在HarmonyOS NEXT应用中使用GTest测试…

基于Java的学生档案管理系统的设计与实现

基于springbootvue实现的学生档案管理系统 &#xff08;源码L文ppt&#xff09;4-065 第4章 系统设计 4.1 总体功能设计 学生档案管理系统的总体功能设计包括学生信息管理、课程管理、教师信息管理、成绩管理和系统配置管理。系统将提供用户友好的界面&#xff0c;支…

Cpp类和对象(上)(3)

文章目录 前言一、面向过程与面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及类的封装类的访问限定符类的封装 五、类的作用域(类域)六、类的实例化七、类对象模型如何计算类对象的大小类对象的存储方式猜测 八、this指针this指针的引出this指针的特性 九、C语言…

天池Fashion AI 比赛失败经历分享

关联比赛: FashionAI全球挑战赛—服饰关键点定位 昨天是天池Fashion AI初赛Deadline&#xff0c; 成绩出来复赛都没能进&#xff0c;虽然结果很遗憾&#xff0c;但在比赛的过程中也接触到了不少的新东西&#xff0c;希望能在这里把我尝试过的方法都分享出来。作为对自己的总结…