linux qt电子相册,Qt 简易电子相册

Qt开发软件下开发:

主函数

#include

#include "icon.h"

#include

#include

#includeint main(int argc, char *argv[])

{

QApplication a(argc, argv);

Icon w;

QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));//国际标准字体

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));

QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));

w.setEnabled(false);

w.setDisabled(false);

w.setFixedSize( w.width (),w.height ());

w.show();//全屏显示w.shouFullScreen();

QFont f("wenquanyi",12);

a.setFont(f);

QColor q(255,0,0);

q.setRed(255);

return a.exec();

}

头文件:

#ifndef ICON_H

#define ICON_H

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

namespace Ui {

class Icon;

}

class Icon : public QMainWindow

{

Q_OBJECT

public:

explicit Icon(QWidget *parent = 0);

~Icon();

private:

Ui::Icon *ui;

QTimer *timer;

QPixmap pix;

QLabel *label,*label1;

private slots:

void on_pushButton_3_clicked();

void on_left_clicked();

void on_pushButton_clicked();

void on_small_clicked();

void on_big_clicked();

void on_down_clicked();

void on_up_clicked();

void on_stop_clicked();

void on_start_clicked();

void imageshow();

};

#endif // ICON_H

cpp文件:

#include "icon.h"

#include "ui_icon.h"

#include

int i=0,j=0;

QString imagelist[100];//定义长度为一百的数组用来存放打开的图片,在linux中暂时只能显示png格式的图片

//QString image[5]={":/2.png",":/3.png",":/4.png",":/5.png",":/7.png"};

QStringList::iterator it;//迭代器

Icon::Icon(QWidget *parent) :

QMainWindow(parent),

ui(new Ui::Icon)

{

ui->setupUi(this);

label=new QLabel;

//    label1=new QLabel(tr("电子相册"),this );

//    函数explicit QLabel(const QString &text, QWidget *parent=0, Qt::WindowFlags f=0);

//    label1->setGeometry(140,200,120,40);

/*****************************************添加背景图片************************************/

QImage image1;

image1.load(":/8.png");    //括号内为图片的相对目录

QImage image2 = image1.scaled(320,240);

QPalette palette;

palette.setBrush(this->backgroundRole(),QBrush(image2));

this->setPalette(palette);

/****************************************将滚动条添加到label上************************************/

//ui->label->setAlignment(Q);

ui->scrollArea->setWidget(label);

ui->scrollArea->setAlignment(Qt::AlignHCenter);

timer=new QTimer();

/*****************************************信号与槽************************************/

connect(timer,SIGNAL(timeout()),SLOT(imageshow()));

}

Icon::~Icon()

{

delete ui;

}

/*****************************************开始播放图片************************************/

void Icon::on_start_clicked()

{

timer->start(1000);//每隔一秒开始显示一张图片

ui->shuzi->setNum(++i);//在Label上显示已经显示的图片的个数

}

/*****************************************停止播放图片************************************/

void Icon::on_stop_clicked()

{

timer->stop();

}

/*****************************************自动显示图片************************************/

void Icon::imageshow()

{

pix.load(imagelist[i]);//先下载图片

pix=pix.scaled(label->width(),label->height(),Qt::KeepAspectRatio);//设置显示图片的大小和label的大小一致

label->setPixmap(pix);//将图片显示在面板上

ui->shuzi->setNum(i);

i++;

if(i>j)

i=0;

}

/*****************************************显示上一张图片************************************/

void Icon::on_up_clicked()

{

i=i+1;

if(i>j)

i=0;

pix.load(imagelist[i]);

label->setPixmap(pix);

ui->shuzi->setNum(i);

timer->stop();

}

/*****************************************显示下一张图片************************************/

void Icon::on_down_clicked()

{

i=i-1;

if(i<0)

i=j;

pix.load(imagelist[i]);

label->setPixmap(pix);

ui->shuzi->setNum(i);

timer->stop();

// i=i-1;

}

/*****************************************放大图片************************************/

void Icon::on_big_clicked()

{

timer->stop();

double w=pix.width();//定义两个double对象分别获取图片的宽和高

double h=pix.height();

pix=pix.scaled(w*1.2,h*1.2,Qt::KeepAspectRatio);//将图片扩大至原来的1.2倍

label->setPixmap(pix);

}

/*****************************************缩小图片************************************/

void Icon::on_small_clicked()

{

timer->stop();

double h=pix.height();

double w=pix.width();

pix=pix.scaled(w*0.8,h*0.8,Qt::KeepAspectRatio);

label->setPixmap(pix);

}

/*****************************************打开文件************************************/

void Icon::on_pushButton_clicked()

{

int k=0;

QStringList list=QFileDialog::getOpenFileNames(this,"Select file","/","*.*");//1在当前窗口上打开文件,2窗口的名字,选择文件的路径,文件类型

for(it=list.begin();it     {

imagelist[k]=*it;

qDebug()

}

j=k-1;

//       pix.load(imagelist[j]);

//       label->setPixmap(pix);

if(j<0)

j=0;

ui->zongshu->setNum(j);

}

/*****************************************向左旋转************************************/

void Icon::on_left_clicked()

{

timer->stop();

QMatrix matrix;

matrix.rotate(90);/*向左旋转,先将图片暂停下来,先用QMatrix类定义一个对象,对象调用旋转函数*/

pix=pix.transformed( matrix,Qt::FastTransformation);

label->setPixmap(pix);

}

/*****************************************向右旋转************************************/

void Icon::on_pushButton_3_clicked()

{

timer->stop();

QMatrix matrix;/*向右旋转,先将图片暂停下来,先用QMatrix类定义一个对象,对象调用旋转函数*/

matrix.rotate(-90);

pix=pix.transformed( matrix,Qt::FastTransformation);

label->setPixmap(pix);

}0b1331709591d260c1c78e86d0c51c18.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值