Day41 使用listwidget制作简易图片播放器
1.简介
使用QlistWidget实现简易图片播放器,可以打开一个图片序列,通过item的单击事件实现图片的切换,通过设置list的各种属性实现图片预览的显示,美化滚动条即可实现一个简易图片播放器。
2.效果

3.实现步骤:
1.初始化界面部件,主要是设置list为水平滚动模式并且关闭自动换行,这样他可以一直将所有图片显示在一行中,效果为图片播放器的预览窗口。然后设置view mode为图标模式,禁止拖动复制,具体属性在代码部分可见。
ui->listWidget->setHorizontalScrollMode(QAbstractItemView::ScrollPerItem); // 设置水平滚动模式为每个item滚动ui->listWidget->setWordWrap(false); // 开启自动换行ui->listWidget->setFlow(QListView::TopToBottom);ui->listWidget->setViewMode(QListWidget::IconMode);//设置为图标显示方式ui->listWidget->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);ui->listWidget->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);ui->listWidget->setIconSize(QSize(200,150));ui->listWidget->setSpacing(10);ui->listWidget->setDragDropMode(QAbstractItemView::NoDragDrop); // 禁止拖动复制
2.设置滚动条样式表
horizontalScrollBar = ui->listWidget->horizontalScrollBar();QString styleSheet = "QScrollBar:horizontal {"" border: 2px solid #999999;"" background: #f0f0f0;"" height: 15px;"" margin: 0px 22px 0px 22px;"" border-radius: 7px;""}""QScrollBar::handle:horizontal {"" background: #666666;"" min-width: 20px;"" border-radius: 7px;""}""QScrollBar::add-line:horizontal {"" width: 20px;"" subcontrol-position: right;"" subcontrol-origin: margin;"" border-image: url(:/images/arrow_right.png);""}""QScrollBar::sub-line:horizontal {"" width: 20px;"" subcontrol-position: left;"" subcontrol-origin: margin;"" border-image: url(:/images/arrow_left.png);""}";horizontalScrollBar->setStyleSheet(styleSheet);
3.通过按钮弹出文件选择对话框,选择各种类型的图片。
QStringList paths = QFileDialog::getOpenFileNames(this,"Seclect img","D:\\", tr("ALL Files (*.jpg *.jpeg *.png *.bmp);;JPEG Files (*.jpg *.jpeg);;PNG Files (*.png);;GIF Files (*.gif);;BMP Files (*.bmp)"));
4.将所有的图片加载成item项,同时滚动条可以根据图片内容自动调整大小。
totalNumber = paths.size();//序列显示for(int i = 0; i < totalNumber; i++) {QFileInfo fileInfo(currentPaths.at(i));qDebug()<<"currentPaths"<<fileInfo.fileName();QListWidgetItem *signalPicItem=new QListWidgetItem(QIcon(currentPaths.at(i)),fileInfo.fileName());ui->listWidget->addItem(signalPicItem);}
5.连接item单击事件,完成图片的切换操作。
QObject::connect(ui->listWidget, &QListWidget::itemClicked, [&](QListWidgetItem *item) {// 在这里处理项目单击事件setCurrentImage(ui->listWidget->row(item));qDebug() << "Clicked item text:" << item->text()<<ui->listWidget->row(item);});
6.中心部分的显示区域由Qlabel完成图片的显示。
void MainWindow::setCurrentImage(int index)
{QString path = currentPaths.at(index);QPixmap pix(path);ui->label->setPixmap(path);ui->listWidget->setItemSelected(ui->listWidget->item(index), true);
}
相关文章:
Day41 使用listwidget制作简易图片播放器
1.简介 使用QlistWidget实现简易图片播放器,可以打开一个图片序列,通过item的单击事件实现图片的切换,通过设置list的各种属性实现图片预览的显示,美化滚动条即可实现一个简易图片播放器。 2.效果 3.实现步骤: 1.初始…...
matlab 基于卡尔曼滤波的GPS-INS的数据融合的导航
1、内容简介 略 25-可以交流、咨询、答疑 2、内容说明 基于卡尔曼滤波的GPS-INS的数据融合的导航 "基于卡尔曼滤波的GPS-INS的数据融合的导航 基于卡尔曼滤波实现GPS-INS组合导航系统" 卡尔曼滤波、GPS、INS、数据融合、导航 3、仿真分析 4、参考论文 略 …...
vivado实现分析与收敛技巧6-策略建议
典型时序收敛策略需运行大量实现策略并选取其中最佳的策略以供在实验室内应用。 ML 策略同样可选 , 且只需您运行3 项策略即可达成类似的 QoR 收益。这些策略使用机器学习来检验布线后设计的各项功能特性 , 以便预测相同设计上不同策略的性能。在 repo…...
SOCKET、TCP、HTTP之间的区别与联系
SOCKET、TCP、HTTP之间的区别与联系 一、 Socket 1、什么是socket2、为什么需要socket3、建立socket连接 二、HTTP(基于TCP) 1、HTTP的概念2、HTTP连接的特点 连接请求:一次连接连接请求:短连接(socket是长连接) 三、TCP/IP协议簇 四、HTTP、Socket…...
javascript的Proxy
1. 什么是Proxy Proxy是ES6中新增的一个特性,它可以拦截对象的操作,提供了一个中间层来控制对目标对象的访问。简单来说,它可以对对象进行代理,从而实现对对象的监控、修改、过滤等操作。 2. 为什么出现Proxy 在JavaScript中&a…...
Python发送微信模板消息
1、根据appid,secret获取token 2、查找粉丝 3、指定模板及粉丝id发送模板消息 4、链接SqlServer数据库获取消息任务 5、创建定时任务监听消息 from logging import exception import time import pymysql import datetime; from utils.http_utils import *; from model.msg_wx_…...
springboot(ssm医院门诊信息管理系统 医院管理平台Java(codeLW)
springboot(ssm医院门诊信息管理系统 医院管理平台Java(code&LW) 开发语言:Java 框架:ssm/springboot vue JDK版本:JDK1.8(或11) 服务器:tomcat 数据库:mysql 5.7(或8.0&am…...
css所有属性介绍
文章目录 1️⃣ CSS属性介绍1.1 CSS3 动画属性(Animation)1.2 CSS 背景属性(Background)1.3 CSS 边框属性(Border 和 Outline)1.4 Box 属性1.5 Color 属性1.6 Content for Paged Media 属性1.7 CSS 尺寸属性…...
C#语言高阶开发
目录 数据结构 集合 动态数组ArrayList 习题:声明一个Monster类,有一个Attack方法,用一个ArrayList去封装Monster的对象,装10个,遍历monster的list让他们释放攻击方法 哈希表HashTable 创建一个武器类,有一个属性叫做id,每个…...
使用Qt Designer设计水平布局,加addStretch()不起作用,解决办法?
解决办法: 将main函数中的MainWindow.show()改为:ui.show() if __name____main__:app QApplication(sys.argv)MainWindow QMainWindow()ui Ui_MainWindow()ui.setupUi(MainWindow)ui.show()app.exec()完整代码: import sysfrom PyQt5 i…...
数据结构:带头双向循环链表的实现
引言 单链表存在缺陷:需要从头开始找前一个节点 解决方法:双向链表 链表的结构(8种): 1. 单向,双向 2. 带头、不带头 带头即为带哨兵位的头节点,第一个节点不存储有效数据。带头节点&#…...
最小生成树(Minimum Spanning Tree)及生成MST的几种方法
最小生成树 (Minimum Spanning Tree) 最小生成树是图论领域的一个基本概念,适用于加权连通图,其中包括若干顶点(节点)以及连接这些顶点的边(边可以有权重)。在一个加权连通图中,生成树…...
逻辑漏洞 暴力破解(DVWA靶场)与验证码安全 (pikachu靶场) 全网最详解包含代码审计
逻辑漏洞 暴力破解(DVWA靶场)与验证码安全 (pikachu靶场) 全网最详解包含代码审计 0x01 前言 在当今互联网的广袤世界中,各式交互平台层出不穷。每一个交互平台几乎都要求用户注册账号,而这些账号则成为我们在数字世界中的身份象征。账号的安全性变得至…...
io基础入门
压缩的封装 参考:https://blog.csdn.net/qq_29897369/article/details/120407125?utm_mediumdistribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-0-120407125-blog-120163063.235v38pc_relevant_sort_base3&spm1001.2101.3001.…...
k8s ingress 无法找到端点
文章目录 ingress rule无法找到端点这个注解是什么意思呢?为何不生效呢?端点无法更新?如何确认ingressclass呢?修复端点无法发现的问题多个ingress controller 架构 ingress rule无法找到端点 在vnnox-cn集群创建ingress…...
properties转yml
目前搜索到的大部分代码都存在以下问题: 复杂结构解析丢失解析后顺序错乱 所以自己写了一个,经过不充分测试,基本满足使用。可以直接在线使用 在线地址 除了yml和properties互转之外,还可以生成代码、sql转json等,可…...
谈谈中间件设计的思路
前言 想要设计和真正理解中间件的架构理论和思想。对于开发来说需要具备三个关键的能力 1:基础通用技术的深入理解和运用2:了解和熟悉常见中间件的设计思想,且有自己的感悟,并且能按照自己的理解模仿写一写3:业务的高度理解能力…...
WT2605-24SS音频蓝牙录放语音芯片:标准蓝牙功能与多样化存储播放方式助力音频体验升级
在音频技术日新月异的今天,WT2605-24SS音频蓝牙录放语音芯片以其强大的功能和出色的性能,成为了音频市场的一颗璀璨明星。该芯片不仅具备标准音频蓝牙功能,还支持蓝牙电话本、录音功能以及多种存储和播放方式,为用户提供了更加便捷…...
openssl生成ssl证书
x509证书一般会用到三类文,key,csr,crt。 Key 是私用密钥openssl格,通常是rsa算法。 Csr 是证书请求文件,用于申请证书。在制作csr文件的时,必须使用自己的私钥来签署申,还可以设定一个密钥。…...
以太网PHY,MAC接口
本文主要介绍以太网的 MAC 和 PHY,以及之间的 MII(Media Independent Interface ,媒体独立接口)和 MII 的各种衍生版本——GMII、SGMII、RMII、RGMII等。 简介 从硬件的角度看,以太网接口电路主要由MAC(M…...
MediaCrawler:社交媒体数据采集的全方位解决方案
MediaCrawler:社交媒体数据采集的全方位解决方案 【免费下载链接】MediaCrawler-new 项目地址: https://gitcode.com/GitHub_Trending/me/MediaCrawler-new 在信息爆炸的数字时代,社交媒体平台成为数据的富矿。无论是市场分析、学术研究还是内容…...
用QT5的QTcpSocket做一个TCP调试助手:连接单片机/服务器测试数据收发
用QT5打造专业级TCP调试助手:从基础通信到工业级工具开发 在嵌入式开发和物联网项目中,TCP通信调试是每个工程师都会遇到的常规需求。无论是与STM32单片机通信,还是测试PLC设备的网络功能,亦或是验证云服务器的数据接口࿰…...
Buildroot工具链内核版本号快速查询:3步搞定LINUX_VERSION_CODE解析
Buildroot工具链内核版本号快速查询:3步搞定LINUX_VERSION_CODE解析 在嵌入式开发中,工具链与内核版本的匹配问题常常让开发者头疼不已。想象一下这样的场景:你花费数小时编译的代码突然报错,仅仅因为工具链使用的内核头文件版本与…...
POIKit 2024:如何用5步实现大规模POI数据采集与智能处理
POIKit 2024:如何用5步实现大规模POI数据采集与智能处理 【免费下载链接】AMapPoi POI搜索工具、地理编码工具 项目地址: https://gitcode.com/gh_mirrors/am/AMapPoi 当你面对需要采集某个城市所有餐饮店铺、分析竞争对手门店分布、或者研究城市设施空间布局…...
XInput1_4.dll缺失怎么修复?2026年最新官方安全修复指南
XInput1_4.dll缺失怎么修复?2026年最新官方安全修复指南当你满心欢喜地连接好Xbox手柄,准备沉浸到最新游戏的紧张对决中,屏幕上却突然弹出“找不到XInput1_4.dll”或“XInput1_4.dll丢失”的错误提示,这确实让人瞬间扫兴。这个报错…...
如何免越狱定制iPhone界面:Cowabunga Lite完整使用指南
如何免越狱定制iPhone界面:Cowabunga Lite完整使用指南 【免费下载链接】CowabungaLite iOS 15 Customization Toolbox 项目地址: https://gitcode.com/gh_mirrors/co/CowabungaLite Cowabunga Lite是一款专为iOS 15设备设计的系统定制工具,让普通…...
2026年03月总结及随笔之又双叒叕漏更
1. 回头看日更坚持了1186天。读《人工智能全球格局:未来趋势与中国位势》更新完成读《2025世界前沿技术发展报告》开更并持续更新中2023年至2025年12月底累计码字3054280字,累计日均码字2786字。2023年至2026年03月底累计码字3334223字,累计日…...
数据仓库进阶:缓慢变化维度(SCD)完全解析
数据仓库进阶:缓慢变化维度(SCD)完全解析1. 缓慢变化维度概述1.1 什么是SCD?1.2 为什么需要SCD?2. SCD处理流程图3. 常见SCD类型详解3.1 Type 0:保持不变(Retain Original)3.2 Type …...
QGIS里怎么加载NASA的SRTM高程数据?从下载到3D可视化的保姆级教程
QGIS实战:从NASA SRTM高程数据下载到3D地形可视化全流程指南 当你第一次在QGIS中看到那些起伏的山脉、蜿蜒的河谷以三维形式呈现时,那种将地理数据转化为视觉故事的成就感是无与伦比的。NASA的SRTM(航天飞机雷达地形测绘任务)高程…...
别再只盯着CAN了!聊聊LIN总线在低成本IoT传感器网络里的那些‘骚操作’
LIN总线在低成本IoT传感器网络中的创新实践 当谈到工业物联网和传感器网络通信协议时,大多数人会立刻想到CAN、Modbus或以太网协议。但有一个被严重低估的选项正在悄然崛起——LIN总线。这个原本为汽车电子设计的轻量级协议,凭借其独特的成本优势和简洁架…...
