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);
}
linux qt电子相册,Qt 简易电子相册相关推荐
- Linux qt教程 qt入门(一)
使用Linux纯属为了想了解UNIX下DB2运行和使用情况,而一直喜欢用的FreeBSD上好像不支持DB2数据库,反正我没有看到这方面资料.如果有谁知道的话请你告诉我. 我的爱机配置较低,在Freeb ...
- qt程序在Linux下字体乱了,解决linux/Ubuntu下Qt creater 界面程序在编译运行后无法显示中文或中文乱码问题!...
本文解决的主要是界面程序编译运行后无法显示中文的问题,如果在creater 中无法输入中文,下载个IBus或者搜狗之类的中文输入法即可解决! 首先说乱码问题,这个很好解决: 如果是在linux下打开W ...
- 适用于Linux / X11的Qt
适用于Linux / X11的Qt 适用于Linux / X11的Qt 支持的配置 开发主机要求 从源代码构建Qt 5 适用于Linux / X11的Qt Qt对各种Linux平台的支持广泛而成熟. ...
- 嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建
摘要:本文主要介绍在PC机上搭建基于QT的嵌入式开发环境,其中很多源文件都是开发板自带,需要相应资料的可以评论留下邮箱地址. 版本:交叉编译工具链:GCC 4.7.3 [gcc-linaro-arm ...
- linux下Qt编写串口调试助手,如何在linux下用QT写一个简单的串口调试助手
如何在linux下用QT写一个简单的串口调试助手 QT5串口类 在QT5以前,编写串口一般使用的是qextserialport类,但在QT5之后有了QT自带的串口类SerialPort(串口基础类)和 ...
- linux 安装qt 4.6软件,QT学习之一:Linux下安装QT之版本qt-4.6.3
在Linux中分别安装应用于不同平台的QT:PC:嵌入式X86:ARM. 这三者PC版.嵌入式X86版和ARM版的区别主要体现在:当configure时分别加了不同的参数,具体区别是:PC平台:在li ...
- 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 ...
- 【QT项目】简易五子棋游戏(人机对战)— 完整源码
文章目录 前言 一.游戏实现效果 二.需求分析 三.解决方案 四.核心步骤 1.插入棋盘图 2.双方落子 3.输赢判定 4.重新开始 五.完整源码 1.main.cpp 2.chessboard.h ...
- Linux下基于qt的视频监控系统
目录 一.原始需求 二.环境安装 2.1 qt安装 2.2 opencv安装 三.系统设计 3.1. 整体流程设计 3.2 .数据传输交互流程 3.3 .数据库设计 四.关键代码 4.1.如何实现通信 ...
- Linux环境打包Qt程序并部署到Docker容器
Linux环境打包Qt程序并部署到Docker容器 根据项目需要,将UKylin版本的qt应用程序打包并且部署到docker容器中 系统版本 UKylin版本:Ubuntu18.04 Docker镜像 ...
最新文章
- Python3高并发定时更新任务进程池和线程池的使用
- 用Tableau画瓷砖地图
- April Fools Day Contest 2016 A. Da Vinci Powers
- mysql 性能分析_十大MySQL性能分析工具汇总!专治MySQL性能瓶颈
- 项目推进计划表_项目为啥延期之一:计划问题
- JAVA阻塞队列LinkedBlockingQueue 以及非阻塞队列ConcurrentLinkedQueue 的区别
- 【Windows】要不要升级Win11?Win11与Win10界面对比体验
- EasyPlayer.js H5播放器帮助我这种不会前端的普通用户也能轻松实现直播接入
- 黑苹果 - 图形卡 显示器 7MB
- [bzoj1001]狼抓兔子 最小割
- 【基因调控网络】基因调控网络及其模型
- redis 安装以及redis desktop manger 连接
- Canvas画环形圆
- 修改css样式后刷新网页无改变
- #define 喵 int_招行10元风暴第4轮出喵攻略
- 2023西北大学计算机考研信息汇总
- Ubuntu使用git更新本地代码到github
- 蓝牙5.2协议、主从一体、低功耗、工业级蓝牙模组BLE105新品上市
- Karplus-Strong Algorithm 弦乐器模拟 吉他弦乐器发声原理 泛音 乐理概述
- 在家无聊?16篇最新推荐系统论文送你