多功能数码相册

版权声明:欢迎转载,注明出处 https://blog.csdn.net/jklcl/article/details/80876003

多功能数码相册

#include "widget.h"
#include "ui_widget.h"


QString imageList[13];//十三张照片
QString play_img[13];
QStringList::Iterator it;//迭代器

int all_img_num;
int img_num;
int bj_num;

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

//    QString img1 = ":/image/abl/alb01.jpg";
//    QImage bj_img1;
//    bj_img1.load(img1);

//    ui->bj1->setPixmap(QPixmap::fromImage(bj_img1.scaled(ui->label->size())));

//    QString img2 = ":/image/abl/alb03.jpg";
//    QImage bj_img2;
//    bj_img1.load(img2);
//    ui->bj2->setPixmap(QPixmap::fromImage(bj_img2.scaled(ui->bj2->size())));

//    QString img3 = ":/image/abl/alb04.jpg";
//    QImage bj_img3;
//    bj_img1.load(img3);
//    ui->bj3->setPixmap(QPixmap::fromImage(bj_img3.scaled(ui->bj3>size())));
    ui->play->setEnabled(false);
}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_open_file_clicked()
{
    int num = 0;
    QStringList list = QFileDialog::getOpenFileNames(this,tr("添加图片"),"/","*.png *jpg");
    for(it = list.begin();it < list.end();it++)
    {
        num++;
        imageList[num] = *it;
    }
    all_img_num = num;
    for(int i = 1; i <= all_img_num; i++)
    {
        pix.load(imageList[i]);
        pix = pix.scaled(150,100,Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
        switch (i) {
        case 1:
            ui->img_1->setPixmap(pix);
            break;
        case 2:
            ui->img_2->setPixmap(pix);
            break;
        case 3:
            ui->img_3->setPixmap(pix);
            break;
        case 4:
            ui->img_4->setPixmap(pix);
            break;
        case 5:
            ui->img_5->setPixmap(pix);
            break;
        case 6:
            ui->img_6->setPixmap(pix);
            break;
        case 7:
            ui->img_7->setPixmap(pix);
            break;
        case 8:
            ui->img_8->setPixmap(pix);
            break;
        case 9:
            ui->img_9->setPixmap(pix);
            break;
        case 10:
            ui->img_10->setPixmap(pix);
            break;
        case 11:
            ui->img_11->setPixmap(pix);
            break;
        case 12:
            ui->img_12->setPixmap(pix);
            break;
        }
    }
    ui->play->setEnabled(true);
}

void Widget::on_play_clicked()
{
    for(int i = 1; i <= all_img_num; i++)
    {
        play_img[i]=imageList[i];
    }
    img_num = all_img_num;
    if(ui->bj1->isChecked())
        bj_num = 1;
    else if(ui->bj2->isChecked())
        bj_num = 2;
    else if(ui->bj3->isChecked())
        bj_num = 3;
    else
        bj_num = 0;
    play *pl = new play;
    pl->setWindowTitle("相册播放");
    pl->show();
}
#include "play.h"
#include "ui_play.h"


extern QString play_img[13];
extern int img_num;
extern int bj_num;
qreal w,h, lw, lh;
int now_img=1;


play::play(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::play)
{

    ui->setupUi(this);

    QString img1 = ":/image/abl/alb01.jpg";
    QString img2 = ":/image/abl/alb03.jpg";
    QString img3 = ":/image/abl/alb04.jpg";

    if(bj_num == 1)
    {
        QImage bj_img;
        bj_img.load(img1);
        ui->bj->setPixmap(QPixmap::fromImage(bj_img.scaled(ui->bj->size())));
    }
    else if(bj_num == 2)
    {
        QImage bj_img;
        bj_img.load(img2);
        ui->bj->setPixmap(QPixmap::fromImage(bj_img.scaled(ui->bj->size())));
    }
    else if(bj_num == 3)
    {
        QImage bj_img;
        bj_img.load(img3);
        ui->bj->setPixmap(QPixmap::fromImage(bj_img.scaled(ui->bj->size())));
    }
    label = new QLabel(this);
    ui->scrollArea->setWidget(label);
    ui->scrollArea->setAlignment(Qt::AlignCenter);
    pix.load(play_img[now_img]);
    w = label->width();
    h = label->height();
    lw = w;
    lh = h;
    pix = pix.scaled(w,h,Qt::IgnoreAspectRatio);
    label->setPixmap(pix);
    timer = new QTimer;
    connect(timer,SIGNAL(timeout()),this,SLOT(displayImage()));
    ui->stop->setEnabled(false);

}

void play::displayImage()
{
    now_img++;
    if(now_img > img_num)
        now_img=1;
    pix.load(play_img[now_img]);
    w = label->width();
    h = label->height();
    pix = pix.scaled(w,h,Qt::IgnoreAspectRatio);
    label->setPixmap(pix);
}

play::~play()
{
    delete ui;
}

void play::on_strat_clicked()
{
    ui->stop->setEnabled(true);
    ui->strat->setEnabled(false);
    timer->start(2000);
}

void play::on_stop_clicked()
{
    ui->stop->setEnabled(false);
    ui->strat->setEnabled(true);
    timer->stop();
}

void play::on_pre_clicked()
{
    timer->stop();
    now_img -= 1;
    if(now_img == 0)
    {
        now_img = img_num;
    }
    pix.load(play_img[now_img]);
    w = label->width();
    h = label->height();
    pix = pix.scaled(w,h,Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
    label->setPixmap(pix);
}

void play::on_next_clicked()
{
    timer->stop();
    now_img += 1;
    if(now_img == img_num+1)
    {
        now_img = 1;
    }
    pix.load(play_img[now_img]);
    w = label->width();
    h = label->height();
    pix = pix.scaled(w,h,Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
    label->setPixmap(pix);
}

void play::on_big_clicked()
{
    timer->stop();
    pix.load(play_img[now_img]);
    pix = pix.scaled(w*=1.2,h*=1.2, Qt::KeepAspectRatio);
    label->setPixmap(pix);
}

void play::on_small_clicked()
{
    timer->stop();
    pix.load(play_img[now_img]);
    pix = pix.scaled(w*=0.8,h*=0.8, Qt::KeepAspectRatio);
    label->setPixmap(pix);
}

void play::on_left_clicked()
{
    timer->stop();
    matrix.rotate(90);
    pix = pix.transformed(matrix,Qt::FastTransformation);
    pix = pix.scaled(label->width(),label->height(),Qt::IgnoreAspectRatio);
    label->setPixmap(pix);
}

void play::on_right_clicked()
{
    timer->stop();
    matrix.rotate(-90);
    pix = pix.transformed(matrix,Qt::FastTransformation);
    pix = pix.scaled(label->width(),label->height(),Qt::IgnoreAspectRatio);
    label->setPixmap(pix);
}

void play::on_returns_clicked()
{
    pix.load(play_img[now_img]);
    w = lw;
    h = lh;
    pix = pix.scaled(lw,lh,Qt::IgnoreAspectRatio);
    label->setPixmap(pix);
}


下载地址:https://download.csdn.net/download/jklcl/10504969

 

猜你喜欢

转载自blog.csdn.net/jklcl/article/details/80876003