QT实现电子相册

使用带有UI界面的QWidget实现电子相册

1、实现功能

1、定时器的使用,在当前页面的停止总时长。

2、显示当前时间

3、图片的上一张与下一张

4、图片的显示

5、进度展示、一共十张图片、进度条的初始值为10。

2、widget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>
#include <QDateTime>
#include <QLabel>
#include <QTimer>
#include<QStringList>
#include<QtDebug>
#include<QMessageBox>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget
{Q_OBJECTpublic:Widget(QWidget *parent = nullptr);~Widget();public slots://自己新增的槽函数是publicvoid update_text();void update_time();//UI界面,新增的槽函数是private
private slots:void on_down_btn_clicked();void on_up_btn_clicked();private:Ui::Widget *ui;QTimer *time;//当前时间,定时器对象QTimer *timer;//定时器对象,计时器QTime *time1;//时间对象,时分秒,计时器QStringList imageList;int index;
};
#endif // WIDGET_H

3、widget.cpp

#include "widget.h"
#include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//1.实现当前时间this->time = new QTimer(this);//定时器的实例化this->time->setInterval(1000);//设置时长、毫秒//信号和槽函数的关联,要在启动之前,先关联好,QT5connect(this->time,&QTimer::timeout,this,&Widget::update_time);this->time->start();//启动定时器//2.实现计时器this->timer = new QTimer(this);//this->time1 = new QTime(0,0,0);//设计时间的初始值,从零开始,是按秒更新this->time1 = new QTime(0,0,0,0);//设计时间的初始值,从零开始,是按毫秒更新//this->timer->start(1000);//1000毫秒是1秒,这个是按秒更新this->timer->start(1);//多久启动一次,单位是毫秒,这个是按1毫秒更新//QT4的连接connect(this->timer,SIGNAL(timeout()),this,SLOT(update_text()));//槽函数要另外定义,private slots://3.图片展示this->ui->img_lab->setPixmap(QPixmap("./image/0.jpg").scaled(this->ui->img_lab->size()));imageList  << "./image/0.jpg" << "./image/1.jpg"<< "./image/2.jpg"<< "./image/3.jpg"<< "./image/4.jpg"<< "./image/5.jpg"<< "./image/6.jpg"<< "./image/7.jpg"<< "./image/8.jpg"<< "./image/9.jpg";index=0;//4.进度条显示this->ui->progressBar->setRange(0,100);//先给进度条设置范围this->ui->progressBar->setValue(10);//再设置初始值
}Widget::~Widget()
{delete ui;
}void Widget::update_time()
{//获取当前的系统时间QString time = QDateTime::currentDateTime().toString("yyyy年MM月dd日 hh:mm:ss");//给标签设置时间this->ui->loctime_lab->setText(time);
}void Widget::update_text()
{//*this->time1=this->time1->addSecs(1);//秒*this->time1=this->time1->addMSecs(1);//毫秒//this->ui->counttime_lab->setText(this->time1->toString("hh:mm:ss"));//使用标签完成时间的显示,不太合适//使用QLCDNumber完成时间的显示,更符合场景//this->ui->lcdNumber->display(this->time1->toString("hh:mm:ss"));//秒this->ui->lcdNumber->display(this->time1->toString("hh:mm:ss:zzz"));//毫秒
}void Widget::on_down_btn_clicked()
{if(index<9){index = (index + 1) % imageList.size(); // 循环显示图片QPixmap pixmap(imageList.at(index));pixmap = pixmap.scaled(ui->img_lab->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);ui->img_lab->setPixmap(pixmap);//进度条大小this->ui->progressBar->setValue((index+1)*10);}else{QMessageBox::warning(this, "提示", "已经是最后一张了");}}void Widget::on_up_btn_clicked()
{if(index>0){index = (index - 1) % imageList.size(); // 循环显示图片QPixmap pixmap(imageList.at(index));pixmap = pixmap.scaled(ui->img_lab->size(), Qt::KeepAspectRatio, Qt::SmoothTransformation);ui->img_lab->setPixmap(pixmap);//进度条大小this->ui->progressBar->setValue((index+1)*10);}else{QMessageBox::information(this, "提示", "已经是第一张了");}//三种关联方式:QT5、QT4、匿名函数
//    connect(this->time,&QTimer::timeout,this,&Widget::update_time);
//    connect(this->timer,SIGNAL(timeout()),this,SLOT(update_text()));}

4、widget.ui

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java设计模式】收集参数模式:掌握高效参数处理

文章目录 【Java设计模式】收集参数模式&#xff1a;掌握高效参数处理一、概述二、收集参数设计模式的别名三、收集参数设计模式的意图四、收集参数模式的详细解释及实际示例五、Java中收集参数模式的编程示例六、何时在Java中使用收集参数模式七、收集参数模式在Java中的实际应…

【微信小程序】SpringBoot集成微信小程序(多小程序集成)

SpringBoot集成微信小程序 前言一、前置工作1、获取appId和appSecret核心参数 二、SpringBoot集成微信小程序1、引入pom依赖2、yml配置3、java代码文件3.1、Properties 配置类3.2 Configuration 服务类 4、使用示例4.1、获取登录后的session信息&#xff1a;openId4.2、获取当前…

举办知识竞赛是线上好还是线下好

举办知识竞赛线上和线下各有优势&#xff0c;选择哪种方式取决于具体的需求和条件。 线上举办知识竞赛的优缺点&#xff1a; 优点&#xff1a; 便捷性&#xff1a;线上竞赛不受地域限制&#xff0c;参与者可以在任何有网络的地方参与。 选手数&#xff1a;可以同时满足人数较…

密码管理最佳实践:安全存储与定期更换的艺术

在数字化时代&#xff0c;密码作为我们个人信息与资产安全的第一道防线&#xff0c;其重要性不言而喻。然而&#xff0c;随着网络威胁日益复杂多样&#xff0c;仅仅设置一个强密码已不足以保障安全。良好的密码管理实践&#xff0c;特别是安全存储与定期更换密码&#xff0c;成…

数据丢失?四款数据恢复免费版分享

作为一个办公室的文案策划人员&#xff0c;我深知数据的重要性。电脑里不仅有我辛辛苦苦撰写的文案&#xff0c;还有那些珍贵的创意灵感和客户资料。然而&#xff0c;就在上周&#xff0c;我因为一次不小心的误操作&#xff0c;把一个重要的文件夹给删除了。那一刻&#xff0c;…

MySql 忘记 Root 密码

停止 mysql 服务 linux 安装时&#xff0c;使用 $> mysqld_safe --usermysql & 启动&#xff0c;所以关闭时&#xff0c;直接 ps 查询进程&#xff0c;并关闭该进程即可 使用如下命令查询进程号&#xff0c;把 mysql 对应的进程都关闭即可 $> ps -ef | grep mysql …

基于web网上十字绣专营店设计与实现

&#xff08;一&#xff09;业务流程分析 没有实现网上销售的十字绣专营店&#xff0c;即店面销售方式&#xff0c;店面需要专人看管&#xff0c;而且销售范围有限&#xff0c;面向的对象很受限制&#xff0c;销售情况需要店主手工记录到账簿&#xff0c;以备利润汇总&#xf…

黄力医生谈健康:掌握这几个秘诀,帮你远离冠心病困扰!

随着生活水平的提高&#xff0c;人们的饮食结构和生活习惯发生了显著变化&#xff0c;这使得冠心病的患病率呈现出逐年上升的趋势&#xff0c;且发病年龄也越来越年轻化。面对这一严峻的健康挑战&#xff0c;提高对冠心病的认识&#xff0c;及早进行干预显得尤为重要。今天&…

HarmonyOS鸿蒙开发:在线短视频流畅切换最佳实践

简介 为了帮助开发者解决在应用中在线短视频快速切换时容易出现快速切换播放时延过长的问题&#xff0c;将提供对应场景的解决方案。 该解决方案使用&#xff1a; 视频播放框架AVPlayer和滑块视图容器Swiper进行短视频滑动轮播切换。绘制组件XComponent的Surface类型动态渲染…

Spring Boot项目中结合MyBatis详细使用

&#xff08;一&#xff09;、实现分布 1. Controller层 职责: 负责处理HTTP请求和响应&#xff0c;作为前端与后端服务交互的接口。 实现: 通过RestController或Controller注解定义控制器类&#xff0c;并使用如GetMapping, PostMapping等注解来映射HTTP请求。 2. Service层…

10 个最佳网络爬虫工具和软件,零基础入门到精通,收藏这一篇就够了

据 Strait Research 称&#xff0c;数据提取的需求正在不断增加&#xff0c;预计到 2031 年将达到 18 亿美元。 使用最好的网络爬行工具启动您的数据提取项目&#xff0c;并告别烦人的爬行头痛。我们研究和测试了数百种免费和付费软件&#xff0c;然后为您提出了十种最佳网络爬…

JVM 内存参数

文章目录 引言I JVM基础知识Java 语言是解释型的OpenJDK和Sun/Oracle JDK和hotspot的关系JDK、JRE、JVM 之间的关系JVM基础功能JVM组成JIT:Just In Time CompilerJVM内存区域JVM运行时数据区JVM 堆内存布局II JVM 内存参数常用参数JIT编译参数GC信息打印GC参数III 例子引言 J…

disk manager操作教程 如何使用Disk Manager组件 Mac如何打开ntfs格式文件

macOS系统有一个特别明显的弱点&#xff0c;即不能对NTFS格式磁盘写入数据。想要适合Mac系统使用来回转换磁盘格式又十分麻烦&#xff0c;这该怎么办呢&#xff1f;Tuxera ntfs for mac作为一款Mac完全读写软件&#xff0c;大家在安装该软件后&#xff0c;能充分使用它的磁盘管…

centos安装docker并配置加速器

docker安装与卸载&#xff1a; 1、检查当前是否安装docker yum list installed | grep docker2、卸载docker 根据yum list installed | grep docker查询出来的内容&#xff0c;逐个进行删除 yum remove docker.x86 64 -y3、启动与关闭docker 4、删除/etc/docker文件夹 如果…

4.3 python 编辑单元格

4.3.1 clear_contents()函数和clear()函数–清楚单元格的内容和格式 表达式.clear_contents() Range对象的clear_contects()函数用于清除单元格的内容&#xff0c;但不会清除单元格的格式设置 表达式.clear() Range对象的clear()用于清楚单元格的内容和格式设置。 # 清除指…

Unity面试:使用Unity3d实现2d游戏有几种方式?

在Unity 3D中实现2D游戏&#xff0c;有多种方法和工具可供选择。以下是一些常见的实现方式及其特点&#xff0c;适合不同类型的2D游戏开发需求。 1. 使用Unity的2D工具和特性 Unity提供了专门用于2D游戏开发的一系列工具和功能&#xff0c;以下是主要的几个方面&#xff1a; …

C#面试题系列--动态更新

C#面试题系列 排版排了半天&#xff0c;也是不好看&#xff0c;那就不排版了&#xff0c;尽量由易到难 高级一些 什么是MVC模式C#中特性是什么&#xff1f;如何使用&#xff1f;C#中什么是反射?C#中的委托是什么 事件是不是一种委托C# 不安全代码C# 隐式类型 varC# linqC# 匿名…

监控域名到期发送钉钉消息通知

目的 想象一下&#xff0c;域名到期都不知道&#xff0c;忘了续费&#xff0c;就像忘了交房租&#xff0c;房东&#xff08;互联网&#xff09;会毫不留情地把你扫地出门&#xff01;所以&#xff0c;及时续费&#xff0c;让顾客轻松找到你&#xff0c;生意红红火火&#xff0…

【面试经验】美团基础研发部产品经理面试经验

3.12 投递 4.1 一面 4.11 二面 4.17 oc但拒 一面内容&#xff1a; 1、一个指数增长的脑经急转弯 2、对向量和向量值如何理解 ——类比函数&#xff0c;目的是映射和转化 3、transformer有没有看&#xff08;问到了注意力机制&#xff09; ——transformer的本质是一个编码…

智能合约漏洞(三)

前言 在前几篇文章中&#xff0c;我们探讨了智能合约中的逻辑漏洞和重放攻击。本篇将继续分析两种常见的漏洞类型&#xff1a;整数溢出/下溢和时间依赖漏洞。了解这些漏洞及其防范措施对于智能合约的安全开发至关重要。 5. 整数溢出/下溢&#xff08;Integer Overflow/Underfl…