Qt制作简易电子相册
作者:互联网
最近学习了Qt,学习了并制作了一个简易的电子相册供大家学习参考。
首先说一下实现的主要功能:
- 点start自动播放,再次点击可以暂停;
- 暂停功能;
- 切换上一张图片;
- 切换下一张图片。
下面是最终结果图:
下面是界面布局
添加资源文件:
下面附上完整代码
widget.h
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include<QTimer>
#include<QString>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = 0);
~Widget();
private slots:
void show1();
void show2();
void on_pushButton_2_clicked();
void on_pushButton_4_clicked();
void on_pushButton_3_clicked();
void on_pushButton_5_clicked();
private:
Ui::Widget *ui;
QTimer m_timer;
QString m_image[17];
int i;
};
#endif // WIDGET_H
widget.cpp
#include "widget.h"
#include "ui_widget.h"
#include<QImage>
#include<QPixmap>
QStringList::iterator it;
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget)
{
ui->setupUi(this);
this->resize(800,600);
ui->label->setScaledContents(true);
//ui->pushButton->setGeometry(100,100,70,30);
connect(ui->pushButton,SIGNAL(clicked()),this,SLOT(show1()));
connect(&m_timer,SIGNAL(timeout()),this,SLOT(show2()));
m_image[0]="image/1.jpg";
m_image[1]="image/2.jpg";
m_image[2]="image/3.jpg";
m_image[3]="image/4.jpg";
m_image[4]="image/5.jpg";
m_image[5]="image/6.jpg";
m_image[6]="image/17.jpg";
m_image[7]="image/7.jpg";
m_image[8]="image/8.jpg";
m_image[9]="image/9.jpg";
m_image[10]="image/10.jpg";
m_image[11]="image/11.jpg";
m_image[12]="image/12.jpg";
m_image[13]="image/13.jpg";
m_image[14]="image/14.jpg";
m_image[15]="image/15.jpg";
m_image[16]="image/16.jpg";
i=0;
}
Widget::~Widget()
{
delete ui;
}
void Widget::show1()//定时0.5秒自动播放图片
{
if("start"==ui->pushButton->text())
{
m_timer.start(500);
ui->pushButton->setText("stop");
}
else
{
m_timer.stop();
ui->pushButton->setText("start");
}
}
void Widget::show2()//切换下一张图片
{
if(i==17)
{
i=0;
}
QImage imag;
imag.load(m_image[i]);
i++;
//imag.scaled(ui->label->width(),ui->label->height(),Qt::IgnoreAspectRatio);
QPixmap map=QPixmap::fromImage(imag);
ui->label->setPixmap(map);
}
void Widget::on_pushButton_2_clicked()
{
i++;
if(i==17) i=0;
QImage imag;
imag.load(m_image[i]);
QPixmap map=QPixmap::fromImage(imag);
ui->label->setPixmap(map);
}
void Widget::on_pushButton_4_clicked()//暂停
{
m_timer.stop();
}
void Widget::on_pushButton_3_clicked()//切换上一张图片
{
i--;
if(i==-1) i=16;
QImage imag;
imag.load(m_image[i]);
QPixmap map=QPixmap::fromImage(imag);
ui->label->setPixmap(map);
}
void Widget::on_pushButton_5_clicked()//退出
{
this->close();
}
main.c
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
最后在说明一下如果有些同学图片出不来可将image图片文件与debug放在同一目录下即可如下图:
ps(如果还是出不来可能应为qt版本原因,图片名不支持中文,需要你手动改为数字或英文再试应该就没有问题了)
希望大家学习快乐!
标签:Widget,Qt,image,jpg,简易,ui,void,电子相册,pushButton 来源: https://blog.csdn.net/m0_56777650/article/details/115432477