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

ops/2024/9/22 17:45:47/

一、页面布局

二、命名按钮

双击按钮可以修改显示中的文字(例如:改成“全选”),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.ppmy.cn/ops/114349.html

相关文章

使用IDA Pro动态调试Android APP

版权归作者所有&#xff0c;如有转发&#xff0c;请注明文章出处&#xff1a;https://cyrus-studio.github.io/blog/ 关于 android_server android_server 是 IDA Pro 在 Android 设备上运行的一个调试服务器。 通过在 Android 设备上运行android_server&#xff0c;IDA Pro …

Mybatis的XML实现方法

Mybatis的开发有两种方式&#xff1a; 1、注解 2、XML 使用Mybatis的注解方式&#xff0c;主要是来完成一些简单的增删改查功能。如果需要实现复杂的SQL功能&#xff0c;建议使用XML来配置映射语句&#xff0c;也就是将SQL语句写在XML配置文件中。 Mybatis的XML的实现需要以下…

Android 开发高频面试题之——Flutter

Android开发高频面试题之——Java基础篇 flutter高频面试题记录 Flutter1. dart中的作用域与了解吗2. dart中. .. ...分别是什么意思?3. Dart 是不是单线程模型?如何运行的?4. Dart既然是单线程模型支持多线程吗?5. Future是什么6. Stream是什么7. Flutter 如何和原生交互…

【Pycharm】Pycharm创建Django提示pip版本需要升级

目录 1、现象 2、分析 3、本质 前言&#xff1a;经常使用pycharm创建django、flask等项目时候提示pip版本需要升级&#xff0c;解决方案 1、现象 使用Pycharm创建Django项目提示安装Django超时&#xff0c;报错建议pip升级22升级到24 2、分析 之前使用命令升级了pip到了24…

【Linux】深刻理解操作系统的管理

文章目录 1.操作系统的概念&#xff08;是什么&#xff09;2.为什么要有OS&#xff08;为什么&#xff09;3.OS是如何管理的(怎么办)4.OS上层怎么用OS 1.操作系统的概念&#xff08;是什么&#xff09; 操作系统本质是&#xff1a;进行软硬件资源管理的一款软件。 操作系统包…

(PySpark)RDD实验实战——求商品销量排行

实验环境&#xff1a;提前准备好findspark&#xff0c;pyspark&#xff0c;py4j等库 import findspark from pyspark import SparkContext, SparkConffindspark.init() #初始化spark&#xff0c;默认为你所设定的环境变量 conf SparkConf().setAppName("jsytest"…

“屌丝三证”和“高富帅三证”分别指什么,为何会有这样的称呼?

工程行业是一个非常重视考证的行业&#xff0c;考证对于提升能力甚至身价&#xff0c;帮助都是非常巨大的&#xff0c;你有多厉害&#xff0c;拿证书来证明。工程类证书就是国家衡量专业水平的一个重要门槛&#xff0c;跟大学毕业证一样。 工程行业圈内人士&#xff0c;或参加过…

superset 解决在 mac 电脑上发送 slack 通知的问题

参考文档: https://superset.apache.org/docs/configuration/alerts-reports/ 核心配置: FROM apache/superset:3.1.0USER rootRUN apt-get update && \apt-get install --no-install-recommends -y firefox-esrENV GECKODRIVER_VERSION0.29.0 RUN wget -q https://g…