其他分享
首页 > 其他分享> > Qt制作简易电子相册

Qt制作简易电子相册

作者:互联网

最近学习了Qt,学习了并制作了一个简易的电子相册供大家学习参考。
首先说一下实现的主要功能:

下面附上完整代码
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