版权声明:欢迎转载,注明出处 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