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

server/2024/9/22 23:30:17/

一、页面布局

二、命名按钮

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

相关文章

git rev-parse

git rev-parse 是 Git 中一个非常有用的命令&#xff0c;用于解析并返回与 Git 对象&#xff08;如提交、分支、标签等&#xff09;相关的信息。它可以帮助我们从给定的引用&#xff08;ref&#xff09;中解析出 SHA-1 哈希值、路径信息等。这个命令在编写 Git 脚本时尤其有用&…

深度剖析iOS渲染

iOS App 图形图像渲染的基本流程&#xff1a; 1.CPU&#xff1a;完成对象的创建和销毁、对象属性的调整、布局计算、文本的计算和排版、图片的格式转换和解码、图像的绘制。 2.GPU&#xff1a;GPU拿到CPU计算好的显示内容&#xff0c;完成纹理的渲染&#xff0c; 渲染完成后将渲…

大数据-134 - ClickHouse 集群三节点 安装配置启动

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

淳博叶子:品牌、平台与广告公司,最终都是为消费者创造价值 | SMARTIES CHINA 2024终审报道④

淳博传播董事长兼总裁 叶子 近日&#xff0c;SMARTIES CHINA 2024终审活动在苏州音昱水中天落下帷幕。来自各行业的40位品牌广告主代表&#xff0c;历时两天时间&#xff0c;通过紧张的评审和精彩的讨论&#xff0c;从178个优秀入围案例中评选出了每个类别的金银铜大奖及全场大…

浅谈人工智能之Java调用基于Ollama本地大模型

引言 随着人工智能技术的飞速发展&#xff0c;大型语言模型&#xff08;Large Language Models, LLMs&#xff09;已成为自然语言处理领域的研究热点。Ollama是一个强大的工具&#xff0c;它使得在本地部署和管理这些大型语言模型变得更加便捷。本文档旨在指导Java开发者如何在…

RTX 4090 系列即将停产,RTX 5090 系列蓄势待发

据最新消息&#xff0c;英伟达将于今年10月正式终结其GeForce RTX 4090及RTX 4090D两款旗舰级显卡的生产线。根据行业媒体报道&#xff0c;英伟达及其合作厂商将从下个月开始全面停止这两款显卡的制造。 自2022年10月问世以来&#xff0c;GeForce RTX 4090凭借其无与伦比的GPU…

MYSQL数据库基础篇——MYSQL的安装与使用

一.下载并安装MYSQL 下载mysql&#xff0c;地址MySQL,进行如下操作​​​​&#xff1a; ​​​ 安装好后&#xff0c;接下来配置信息&#xff1a; 这里选择第一个&#xff0c;当然&#xff0c;有可能你的版本下的MYSQL并没有这个选项&#xff0c;那么我们可以选择Custom&…

Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图

&#x1f31f;&#x1f31f; 欢迎来到我的技术小筑&#xff0c;一个专为技术探索者打造的交流空间。在这里&#xff0c;我们不仅分享代码的智慧&#xff0c;还探讨技术的深度与广度。无论您是资深开发者还是技术新手&#xff0c;这里都有一片属于您的天空。让我们在知识的海洋中…