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);

}

linux qt电子相册,Qt 简易电子相册相关推荐

  1. Linux qt教程 qt入门(一)

    使用Linux纯属为了想了解UNIX下DB2运行和使用情况,而一直喜欢用的FreeBSD上好像不支持DB2数据库,反正我没有看到这方面资料.如果有谁知道的话请你告诉我. 我的爱机配置较低,在Freeb ...

  2. qt程序在Linux下字体乱了,解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!...

    本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开W ...

  3. 适用于Linux / X11的Qt

    适用于Linux / X11的Qt 适用于Linux / X11的Qt 支持的配置 开发主机要求 从源代码构建Qt 5 适用于Linux / X11的Qt Qt对各种Linux平台的支持广泛而成熟. ...

  4. 嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建

    摘要:本文主要介绍在PC机上搭建基于QT的嵌入式开发环境,其中很多源文件都是开发板自带,需要相应资料的可以评论留下邮箱地址. 版本:交叉编译工具链:GCC 4.7.3  [gcc-linaro-arm ...

  5. linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手

    如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...

  6. linux 安装qt 4.6软件,QT学习之一:Linux下安装QT之版本qt-4.6.3

    在Linux中分别安装应用于不同平台的QT:PC:嵌入式X86:ARM. 这三者PC版.嵌入式X86版和ARM版的区别主要体现在:当configure时分别加了不同的参数,具体区别是:PC平台:在li ...

  7. Linux使用cmake编译项目,如何使用cmake在linux中构建Qt项目(How to build Qt project in linux with cmake)...

    如何使用cmake在linux中构建Qt项目(How to build Qt project in linux with cmake) 我使用的是ubuntu 14.04,cmake 2.8.12.2 ...

  8. 【QT项目】简易五子棋游戏(人机对战)— 完整源码

    文章目录 前言 一.游戏实现效果 二.需求分析 三.解决方案 四.核心步骤 1.插入棋盘图 2.双方落子 3.输赢判定 4.重新开始 五.完整源码 1.main.cpp 2.chessboard.h ...

  9. Linux下基于qt的视频监控系统

    目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...

  10. Linux环境打包Qt程序并部署到Docker容器

    Linux环境打包Qt程序并部署到Docker容器 根据项目需要,将UKylin版本的qt应用程序打包并且部署到docker容器中 系统版本 UKylin版本:Ubuntu18.04 Docker镜像 ...

最新文章

  1. Python3高并发定时更新任务进程池和线程池的使用
  2. 用Tableau画瓷砖地图
  3. April Fools Day Contest 2016 A. Da Vinci Powers
  4. mysql 性能分析_十大MySQL性能分析工具汇总!专治MySQL性能瓶颈
  5. 项目推进计划表_项目为啥延期之一:计划问题
  6. JAVA阻塞队列LinkedBlockingQueue 以及非阻塞队列ConcurrentLinkedQueue 的区别
  7. 【Windows】要不要升级Win11?Win11与Win10界面对比体验
  8. EasyPlayer.js H5播放器帮助我这种不会前端的普通用户也能轻松实现直播接入
  9. 黑苹果 - 图形卡 显示器 7MB
  10. [bzoj1001]狼抓兔子 最小割
  11. 【基因调控网络】基因调控网络及其模型
  12. redis 安装以及redis desktop manger 连接
  13. Canvas画环形圆
  14. 修改css样式后刷新网页无改变
  15. #define 喵 int_招行10元风暴第4轮出喵攻略
  16. 2023西北大学计算机考研信息汇总
  17. Ubuntu使用git更新本地代码到github
  18. 蓝牙5.2协议、主从一体、低功耗、工业级蓝牙模组BLE105新品上市
  19. Karplus-Strong Algorithm 弦乐器模拟 吉他弦乐器发声原理 泛音 乐理概述
  20. 在家无聊?16篇最新推荐系统论文送你

热门文章

  1. Android 置灰指定View
  2. 解密上网使用随身wifi和路由器有什么不同?
  3. margin和padding之我见
  4. 房总管管家显示服务器错误,房总管管家
  5. 推荐一个Root手机及刷机工具—刷机大师
  6. html把图片做正方形背景图片,完美的页面背景图片制作
  7. 《智能RGV动态调度》项目
  8. 关于SSM发送手机验证码
  9. Chrome谷歌浏览器最小化和页面遮挡后JS代码不稳定和功能失效的解决思路
  10. 从零开始搭建仿抖音短视频APP-后端开发消息业务模块(1)