qt--电子相册
一、项目要求
设计一个电子相册,点击上一张,切换到上一张图片,点击下一张,切换到下一张图片。
要求:图片的展示可以循环(QList<QString>)
要求:界面美观
二、项目代码
本质是通过添加图片进入到程序中,然后根据要求切换这些图片
在ui界面上设置四个pushbutton和一个Qlabel,按钮通过槽函数控制图片切换,Qlabel用来展示图片
//头文件dialog.h#ifndef DIALOG_H
#define DIALOG_H#include <QDialog>
#include <QPixmap>
#include <QSize>
#include<QList>
#include <QDebug>
#include <QTimer>
#include <QDateTime>
namespace Ui {
class Dialog;
}class Dialog : public QDialog
{Q_OBJECTpublic:explicit Dialog(QWidget *parent = 0);~Dialog();private:Ui::Dialog *ui;QTimer *timer;private slots:void btnClickSlot( );void btnClickSlot1( );void btnClickSlot2( );void btnClickSlot3( );void timeoutSlot();};#endif // DIALOG_H
//dialog.cpp
#include "dialog.h"
#include "ui_dialog.h"static int flag=1;
static int flag2=1;
int lastPic;QList<QString> alt;
Dialog::Dialog(QWidget *parent) :QDialog(parent),ui(new Ui::Dialog)
{ui->setupUi(this);QString s1(":/new/prefix1/1.png");QString s2(":/new/prefix1/2.png");QString s3(":/new/prefix1/3.png");QString s4(":/new/prefix1/4.png");QString s5(":/new/prefix1/5.png");QString s6(":/new/prefix1/6.png");QString s7(":/new/prefix1/7.png");QString s8(":/new/prefix1/8.png");QString s9(":/new/prefix1/9.png");QString s10(":/new/prefix1/10.png");QString s11(":/new/prefix1/11.png");QString s12(":/new/prefix1/12.png");alt.prepend(s1);// 向前追加alt.append(s2);// 向后追加alt.append(s3);// 向后追加alt.append(s4);// 向后追加alt.append(s5);// 向后追加alt.append(s6);// 向后追加alt.append(s7);// 向后追加alt.append(s8);// 向后追加alt.append(s9);// 向后追加alt.append(s10);// 向后追加alt.append(s11);// 向后追加alt.append(s12);// 向后追加connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(btnClickSlot()));connect(ui->pushButton_2,SIGNAL(clicked()),this,SLOT(btnClickSlot1()));connect(ui->pushButton_3,SIGNAL(clicked()),this,SLOT(btnClickSlot2()));connect(ui->pushButton_4,SIGNAL(clicked()),this,SLOT(btnClickSlot3()));QPixmap pic(alt.at(flag));QSize size(ui->label->width(),ui->label->height());pic = pic.scaled(size,Qt::IgnoreAspectRatio,Qt::FastTransformation);ui->label->setPixmap(pic);timeoutSlot();// 创建定时器对象timer = new QTimer(this);// 设置触发时间timer->setInterval(50);// 设置为周期触发timer->setSingleShot(false);connect(timer,SIGNAL(timeout()),this,SLOT(timeoutSlot()));}Dialog::~Dialog()
{delete ui;
}
void Dialog::btnClickSlot()
{flag++;if(flag==6){flag=0;}qDebug()<<"右翻";QPixmap pic(alt.at(flag));QSize size(ui->label->width(),ui->label->height());pic = pic.scaled(size,Qt::IgnoreAspectRatio,Qt::FastTransformation);ui->label->setPixmap(pic);}
void Dialog::btnClickSlot1()
{flag--;if(flag<0){flag=11;}qDebug()<<"左翻";QPixmap pic(alt.at(flag));QSize size(ui->label->width(),ui->label->height());pic = pic.scaled(size,Qt::IgnoreAspectRatio,Qt::FastTransformation);ui->label->setPixmap(pic);}
//定时
void Dialog::timeoutSlot()
{flag++;if(flag==12){flag=0;}qDebug()<<"变化";QPixmap pic(alt.at(flag));QSize size(ui->label->width(),ui->label->height());pic = pic.scaled(size,Qt::IgnoreAspectRatio,Qt::FastTransformation);ui->label->setPixmap(pic);}
//按钮切换
void Dialog::btnClickSlot2()
{flag2++;if(flag2>1){flag2=0;}if(flag2==0){timer->start();qDebug()<<"循环";ui->pushButton->setEnabled(false);ui->pushButton_2->setEnabled(false);ui->pushButton_4->setEnabled(false);ui->pushButton_3->setText("停止");}else if(flag2==1){qDebug()<<"单步";timer->stop();ui->pushButton->setEnabled(true);ui->pushButton_2->setEnabled(true);ui->pushButton_4->setEnabled(true);ui->pushButton_3->setText("自动");}}
//随机
void Dialog::btnClickSlot3()
{qint64 time=QDateTime::currentMSecsSinceEpoch();qsrand(time);int rand=qrand()%12;if(rand==lastPic){btnClickSlot3();}lastPic=rand;QPixmap pic(alt.at(rand));QSize size(ui->label->width(),ui->label->height());pic = pic.scaled(size,Qt::IgnoreAspectRatio,Qt::FastTransformation);ui->label->setPixmap(pic);qDebug()<<"随机";
}
三、项目效果

相关文章:
qt--电子相册
一、项目要求 设计一个电子相册,点击上一张,切换到上一张图片,点击下一张,切换到下一张图片。 要求:图片的展示可以循环(QList<QString>) 要求:界面美观 二、项目代码 本质是通…...
【MSP430】MSP430F5529几个定时器
MSP430F5529共有四个定时器,其中三个是Timer_A定时器,一个是Timer_B定时器。 这些定时器在MSP430F5529微控制器中发挥着重要的作用,不仅支持多重捕获/比较、PWM输出和内部定时功能,还具有丰富的中断处理能力。这些特性使得MSP430…...
苍穹外卖(一)之环境搭建篇
Ngnix启动一闪而退 启动之前需要确保ngnix.exe的目录中没有中文字体,在conf目录下的nginx.conf文件查看ngnix的端口号,一般默认为80,若80端口被占用就会出现闪退现象。我们可以通过logs/error.log查看错误信息,错误信息如下&…...
【限免】16PAM、16PSK、16QAM、16CQAM星座图及误码率【附MATLAB代码】
微信公众号:智能电磁频谱算法 QQ交流群:949444104 主要内容 MATLAB代码 % Parameters M 16; N 4; % Number of circles for CQAM SNR_dB 0:2:25; % Extended SNR range to reach higher values num_symbols 1e5; % Total number of symbols for s…...
09-软件易用性
易用性是用户体验的一个重要方面,网站建设者一般会沉溺于自己的思维习惯,而造成用户使用的不畅。易用性不仅是专业UI/UE人员需要研究,对于网站建设其他岗位的人也应该了解一定的方法去检验和提升网站的易用性。通常对易用性有如下定义: 易理解…...
FPGA开发——独立仿真和联合仿真
一、概述 我们在进行FPGA开发的过程之中,大部分情况下都是在进行仿真,从而验证代码实现结果的正确与否,这里我们引入了独立仿真和联合仿真进行一个简单介绍。 联合仿真:一般我们在进行仿真之前需要在相应的软件中建立相应的工程…...
基于STM32瑞士军刀--【FreeRTOS开发】学习笔记(二)|| 堆 / 栈
堆和栈 1. 堆 堆就是空闲的一块内存,可以通过malloc申请一小块内存,用完之后使用再free释放回去。管理堆需要用到链表操作。 比如需要分配100字节,实际所占108字节,因为为了方便后期的free,这一小块需要有个头部记录…...
ABAP+从SAP发出去的PDF文件在第三方系统出现乱码
这是一个 ABAP转换PDF调用函数CALL FUNCTION CONVERT_OTF的问题记录,关乎字体STSong-Light-ldentity-H 和 STSong-Light的区别 背景: 做了一个增强,是采购订单审批后自动发送采购订单PDF1到企业微信,用户再将企业微信收到的P…...
基于springsecurity的会话并发处理功能(附代码)
1. 需求 在项目中往往需要实现一个限制不同设备同时登录的功能,比如我只允许同一时间只有一个客户端能登录,而其他的已登陆的客户端会被挤出来 而springsecurity中恰好就帮我们实现好了对应的接口功能,我们只需要自定义配置就好 2. 结合sp…...
Redis底层数据结构的实现
文章目录 1、Redis数据结构1.1 动态字符串1.2 intset1.3 Dict1.4 ZipList1.5 ZipList的连锁更新问题1.6 QuickList1.7 SkipList1.8 RedisObject 2、五种数据类型2.1 String2.2 List2.3 Set2.4 ZSET2.5 Hash 1、Redis数据结构 1.1 动态字符串 Redis中保存的Key是字符串…...
制作excel模板,用于管理后台批量导入船舶数据
文章目录 引言I 数据有效性:基于WPS在Excel中设置下拉框选择序列内容II 数据处理:基于easyexcel工具实现导入数据的持久化2.1 自定义枚举转换器2.2 ExcelDataConvertExceptionIII 序列格式化: 基于Sublime Text 文本编辑器进行批量字符操作引言 需求: excel数据导入模板制…...
领略诗词之妙,发觉生活之美。
文章目录 引言落霞与孤鹜齐飞,秋水共长天一色。野渡无人舟自横。吹灭读书灯,一身都是月。我醉欲眠卿且去,明朝有意抱琴来。赌书消得泼茶香,当时只道是寻常。月上柳梢头,人约黄昏后。最是人间留不住,朱颜辞镜花辞树。山中何事?松花酿酒,春水煎茶。似此星辰非昨夜,为谁风…...
基于FFmpeg和SDL的音视频解码播放的实现过程与相关细节
目录 1、视频播放器原理 2、FFMPEG解码 2.1 FFMPEG库 2.2、数据类型 2.3、解码 2.3.1、接口函数 2.3.2、解码流程 3、SDL播放 3.1、接口函数 3.2、视频播放 3.3、音频播放 4、音视频的同步 4.1、获取音频的播放时间戳 4.2、获取当前视频帧时间戳 4.3、获取视…...
SSIS_SQLITE
1.安装 SQLite ODBC 驱动程序 2.添加SQLite数据源 在“用户DSN”或“系统DSN”选项卡中,点击“添加”。选择“SQLite3 ODBC Driver”,然后点击“完成”。在弹出的配置窗口中,设置数据源名称(DSN),并指定S…...
Redis 7.x 系列【27】集群原理之通信机制
有道无术,术尚可求,有术无道,止于术。 本系列Redis 版本 7.2.5 源码地址:https://gitee.com/pearl-organization/study-redis-demo 文章目录 1. 概述2 节点和节点2.1 集群拓扑2.2 集群总线协议2.3 流言协议2.4 心跳机制2.5 节点握…...
【五】MySql8基于m2芯片arm架构Ubuntu24虚拟机安装
文章目录 1. 更新系统包列表2. 安装 MySQL APT Repository3. 更新系统包列表4. 安装 MySQL Server5. 运行安全安装脚本6. 验证 MySQL 安装7. 配置远程连接7.1 首先要确认 MySQL 配置允许远程连接:7.2 重启 MySQL 服务:7.3 检查 MySQL 用户权限࿱…...
【Hot100】LeetCode—279. 完全平方数
目录 题目1- 思路2- 实现⭐完全平方数——题解思路 3- ACM 实现 题目 原题连接:279. 完全平方数 1- 思路 思路 动规五部曲 2- 实现 ⭐完全平方数——题解思路 class Solution {public int numSquares(int n) {// 1. 定义 dpint[] dp new int[n1];//2. 递推公式…...
腾讯云开发者《中国数据库前世今生》有奖创作季
在数字化潮流席卷全球的今天,数据库作为IT技术领域的“活化石”,已成为数字经济时代不可或缺的基础设施。那么,中国的数据库技术发展经历了怎样的历程?我们是如何在信息技术的洪流中逐步建立起自己的数据管理帝国的呢?…...
redis:清除缓存的最简单命令示例
清除redis缓存命令(执行命令列表见截图) 1.打开cmd窗口,并cd进入redis所在目录 2.登录redis redis-cli 3.查询指定队列当前的记录数 llen 队列名称 4.清除指定队列所有记录 ltrim 队列名称 1 0 5.再次查询,确认队列的记录数是否已清除...
基于深度学习算法,支持再学习功能,不断提升系统精准度的智慧地产开源了。
智慧地产视觉监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。通过计算机视觉和…...
Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...
最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...
[Java恶补day16] 238.除自身以外数组的乘积
给你一个整数数组 nums,返回 数组 answer ,其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法,且在 O(n) 时间复杂度…...
Pinocchio 库详解及其在足式机器人上的应用
Pinocchio 库详解及其在足式机器人上的应用 Pinocchio (Pinocchio is not only a nose) 是一个开源的 C 库,专门用于快速计算机器人模型的正向运动学、逆向运动学、雅可比矩阵、动力学和动力学导数。它主要关注效率和准确性,并提供了一个通用的框架&…...
浪潮交换机配置track检测实现高速公路收费网络主备切换NQA
浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求,本次涉及的主要是收费汇聚交换机的配置,浪潮网络设备在高速项目很少,通…...
【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)
本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...
BLEU评分:机器翻译质量评估的黄金标准
BLEU评分:机器翻译质量评估的黄金标准 1. 引言 在自然语言处理(NLP)领域,衡量一个机器翻译模型的性能至关重要。BLEU (Bilingual Evaluation Understudy) 作为一种自动化评估指标,自2002年由IBM的Kishore Papineni等人提出以来,…...
HubSpot推出与ChatGPT的深度集成引发兴奋与担忧
上周三,HubSpot宣布已构建与ChatGPT的深度集成,这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋,但同时也存在一些关于数据安全的担忧。 许多网络声音声称,这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...
