1.Qt简单电子相册项目


项目介绍:Qt电子相册项目------含有基本控件,含有图片的快速播放效果,暂停播放,上一张,下一张,图片的旋转,图片放大和缩小-----看图上的控件可以看的出来---随便找的图片
左下角是打开文件去找到你想要播放的那一部分图片
项目准备:肯定需要想好你需要什么功能,来找到对应的图片和选择你的控件
创建 photowidget 项目
start
创建资源文件:(把你的找到的图片放到当前工程下imge文件夹中),添加前缀为/,然后把文件夹中的图片全部加入里面


2.在UI界面,分别拖动相应的控件去添加类似主界面中,并且改成为相应的对象名字,删除文本加入资源文件图片在控件上


为什么用QScroolArea:当图片放大的时候我们我们可以滑动两边的边框来设置看图片
3.把所有的控件按钮设置利用 信号和槽函数 来实现所有的功能

注意;这里利用了定时器的操作来播放一系列图片
4.一步一步实现相应的槽函数功能
相应的对应的变量和函数



知识点整理:
QPainterDevice(绘图设备)-----和绘图相关的类:
一般有QImage ,QPixmap ,QPicture ,QWidget --------等!!!!!!!
在我的看法:对于绘画和显示来说,这些设备就是显示相应图片和绘画的控件
QPixmap:图片类,主要的用处就是显示图片,对图片的显示做优化处理,和平台有关
QImage:图片类,图依赖于平台,多用于图片的传输,可以做像素级的修改
Qbitmap:黑白的图片,和其他绘图设备差不多用法
QPicture:可以理解为是一个绘图的容器,里面保存有绘图的记录和重绘的指令,存 储的形式是二进制形式,也就是说我们无法直接双击打开picture()图片
在现在的阶段只需要知道,Qimage是保存很多图片信息的类控件,里面有绘图信息,我们可以通过painter等来画这些图片在其他的设备上
调色板 QPalette
Qt提供的调色板类QPalette专门管理对话框的外观显示;//不是直接类似给控件设置那个资源文件,类似为控件设置相应的背景信息
Qpalette类相当于对话框或控件的调色板,他管理着控件或窗体的所有颜色(背景)信息。感觉这里的颜色是比较笼统的概念
重点:每一个窗体或控件都包含一个Qpalette对象,在显示时,按照它的Qpalette对象中各部分状态下颜色的描述进行绘制
所以每一个控件设置调色板也就相当于设置自己窗体的颜色信息
列:QImage image; //定义一个设备类吧!
image.load(":/image/mainbg.jpeg"); //上载图片资源
QPalette palette; //定义一个调色板
palette.setBrush(this->backgroundRole(),QBrush(image));
//设置调色板相应的信息
this->setPalette(palette);
QTimer ---定时器---:
提供了重复和单次触发信号的定时器。
1. void timeout()为信号,定时器超时后,这个信号被发射
2. void start()为开启定时器函数,它的重载函数void start(int msec),启动或者重新启动一个超时时间间隔为毫秒的定时器,个定时器正在运行,他将被停止和重新启动
3. void stop()停止定时器

Qt基本对话框:
1. QFileDialog类------(标准文件对话框) ----打开文件之前用,方便操作文件,
静态函数 getOpenFileName 返回用户打开的文件名,并且打开文件
常与文件操作联系,上面代码中的是打开目录的文件,是目录操作
Qt目录操作(QDir) :QDir 类有存取目录结构和内容的能力,使用他可以操作目录,存取目录和文件的信息,操作底层系统文件系统,而且还可以存取Qt的资源文件
Qt用/作为通用的目录分隔符和URL路径分隔符。Linux和Windows的分隔符不同,可以使用静态成员 separator()返回适合的分隔符
在我的理解就是一个文件的框架,他的一些函数可以返回目录里面的相应的信息,比如返回你选择目录的路径,你选择文件目录里面的路径(文件名)等,方便其他的类去操作相应路径下的信息吧!!! 绝对路径:从根目录开始,是一个完整的路径
目录的路径可以通过path()函数返回,通过setPath()设置新路径。
绝对路径使用absolute()返回,目录名可以用dirName()获得
entryList()返回目录下所有条目组成的字符串链表----常和QStringList 连用
//加载目录下第i个文件
load(Dir.absolutePath()+QDir::separator()+QStringList.at(i));





Qt 图像的坐标变换
QMatrix类提供了世界坐标系的二维转换功能,可以使窗体装换变形,经常在绘图程序中使用,还可以实现坐标系统的移动,放大,减小,变形,旋转功能
列: img=img.transformed(matrix.scale(2)) ;
提供了一系列图像变换的功能函数
图片变换两部:1.Matrix 设置变换 2.image类进行使用



这次的项目学习就到这里!!!!
如果想让up继续更新在这上面,请给UP一个赞的鼓励!!!!谢谢