Qt5功能包之绘图系统概述
来源:互联网 发布:手机软件无法连接网络 编辑:程序博客网 时间:2024/05/20 02:29
Paint System
Qt的绘图系统对底层函数进行了良好的封装,使得在屏幕和设备的绘图功能可能使用相同一致的API。
绘图系统主要依据于QPainter,QPaintDevice和QPaintEngine三个类来实现的。QPainter表现绘图功能的操作,QPaintDevice作为可用QPainter绘制的二维空间的抽象,QPaintEngine提供了在不同设备上绘制图形的接口。QPaintEngine类其实被QPainter和QPaintDevice在内部调用,除非要自己创造另外的设备否则其对于程序员来说是隐藏的。
这种设计方式的优点在于确保了所有的绘图操作遵循相同的流程,可以很容易的开发相应的功能特性来支持其它的设备类型。
用于表示绘图操作的类
QLine
在整数精度级别绘制二维直线
QLineF
在浮点数精度级别绘制二维直线
QMargins
表示一个矩形的四个外边距的值
QPoint
在整数精度级别表示平面上的一个点
QPointF
在浮点数精度级别表示平面上的一个点
QRect
在整数精度级别表示平面上的一个矩形
QRectF
在浮点数精度级别表示平面上的一个矩形
QSize
在整数精度级别表示一个二维对象的尺寸
QSizeF
在浮点数精度级别表示一个二维对象的尺寸
QSvgGenerator
可绘制SVG的图形设备
QSvgRenderer
载入SVG文件到图形设备
QSvgWidget
图形化显示SVG图形
QStylePainter
在控件中绘制QStyle元素
QColormap
关联设备无关的QColor与设备相关的像素值
QBitmap
单色位图
QIcon
可伸缩的图标,支持多种模式与状态
QIconEngine
用于渲染QIcon的抽象基类
QImage
图像的硬件无关表示,可存取像素数据,也可作为绘图设备
QImageReader
用于读取图像且与图像格式无关的接口
QImageWriter
用于保存图像且与图像格式无关的接口
QPixmap
图像的非屏幕表示,也可用作绘图设备
QGenericMatrix
表示N*M矩阵转换的模板类
QVector2D
二维空间向量
QBrush
表示图形的填充样式
QGradient
渐变填充样式
QLinearGradient
线型渐变
QRadialGradient
辐射渐变
QConicalGradient
锥型渐变
QColor
基于RGB,HSV和CMYK的颜色表示
QPagedPaintDevice
支持多页的绘图设备
QPaintDevice
可绘图对象的基类
QPaintEngine
抽象定义QPainter如何在特定的平台上的绘图方式
QPainter
在控件和其它设备上绘图
QPainterPath
绘制操作的容器
QPainterPathStroker
在路径基础上生成实际的轮廓线
QPdfWriter
生成PDF
QPen
定义QPainter的线条样式
QPolygon
在整数精度级别表示多边形
QPolygonF
在浮点数精度级别表示多边形
QRegion
指定一个剪裁区域
QTransform
指定2D平面的坐标变换
QFont
指定用于绘制文本的字体
QFontMetrics
文字尺度信息
QFontMetricsF
文字尺度信息(浮点)
QSupportedWritingSystems
当使用Qt内部的字体数据库注册时使用
QPlatformFontDatabase
使自定义字体变成可能
绘图设备
QPaintDevice是所有可绘图设备的基类,也就是说QPainter可在任意的QPaintDevice的子类上进行绘图操作,像是QWidget,QImage,QPixmap,QPicture,QPrinter和QopenGLPaintDevice。
Widget
QWidget在QtWidgets模块中是所有用户界面元素类的基类,可以接收鼠标,键盘及其它系统信息并且绘制自身呈现在屏幕上。
Image
QImage提供了硬件无关的图像表示形式,极大简化了I/O与像素存取,支持单色,8位,32位和alpha透明图像。QImage的优点在于可以在不同平台确保像素的精确度,并且绘图过程是另外的线程而非当前GUI线程。
Pixmap
QPixmap提供了与屏幕无关的图像显示方式,简化了图像在屏幕上的呈现。与QImage不同的是,QPixmap的像素数据是被底层的操作系统管理的,只能通过QPainter函数来操作或者转化为QImage来操作。
Qt提供了QPixmapCache类来存储一些超出cache临时空间的图像。同时Qt提供了QBitmap子类来绘制单色图,主要用来构建自定义QCursor与QBrush对象及构建QRegion对象。
OpenGL PaintDevice
QOpenGlPaintDevice为QPainter提供了OpenGLAPI的支持,简化了OpenGL在Qt应用程序中的使用。
Picture
QPicture是用来记录与重现QPainter命令的绘图设备,将绘制命令连续的传递与IO设备与平台无关。同时QPicture也是与分辨率无关的,即可在不同设备(像svg,pdf,ps,printer和屏幕)显示相同的效果。QPicture::load()与QPicture::save()可用来实行图像的数据流操作。
CustomBackends
通过继承QPaintDevice实现其中的paintEngine()方法可自定义绘图功能,另外也必须继承QPaintEngine生成自定义的类来确保绘图功能的可行。
绘图与填充
绘图
QPainter提供了高度简化的GUI图形绘制操作函数,从绘制基本图元到复杂形状如矢量图形。
在Qt中矢量图形由QPainterPath来表示,其提供了绘图操作的容器,使得绘图操作得以重用。
QPen用来绘制线条与轮廓,画笔由其线条风格,宽度,画刷,终点风格,拐点风格等属性所定义。QBrush用来描述其填充图案。而且,QPainter也可绘制文本与图片。
通常情况下QPainter在默认的坐标系中,但也能够使用视口与世界变换来改变绘图与实际像素的坐标对应关系,坐标变换十分重要。
填充
填充风格通常由QBrush来定义,包括颜色与填充图案等。
在Qt中颜色由QColor来表示,可支持RGB,HSV和CMYK等模式,并且也支持alpha透明通道。最重要的是其平台无关性。
在Qt中在Qt::BrushStyle枚举变量中预定义了一些填充图案,从基本颜色到稀有图案,多样的结合线,线型填充与纹理。可参考QGradient与QPixmap。
- Qt5功能包之绘图系统概述
- Qt5功能包之绘图系统--坐标系
- QT5之2D绘图-绘制路径
- WPF几何绘图之概述
- 系统开发之概述
- R语言绘图之ggplot2包
- Qt5开发学习之Qt概述(一)
- html5之canvas绘图 1.写字板功能
- R语言绘图功能之强大
- QT5 学习之路28---坐标系统
- Qt5实现系统关机和重启的功能
- GPS车辆定位系统功能概述
- Qt5 在控件中绘图
- 从零开始学习OpenGL ES之二 – 简单绘图概述
- 从零开始学习OpenGL ES之二 – 简单绘图概述
- 从零开始学习OpenGL ES之二 – 简单绘图概述
- 从零开始学习OpenGL ES之二 – 简单绘图概述
- 从零开始学习OpenGL ES之二 – 简单绘图概述
- 推荐一款JavaScript日历控件:kimsoft-jscalendar
- linux使用外部smtp发送邮件
- 开发cocos2d-x 游戏 实战篇(5)之魔法阵和自定义弹框
- java多线程总结篇
- Android杂谈--Activity、Window、View的关系
- Qt5功能包之绘图系统概述
- Android系统移植与调试之------->如何修改Android默认字体大小和设置里面字体大小比例
- javascript中正确显示struts2标签输出的中文
- Ogre+MFC改造GeoGlobe之纹理寻址
- 互斥线程demo(代码片测试)
- ORA-15064 ORA-03113 - 测试库案例
- 开发cocos2d-x 游戏 实战篇(6)之 绚丽的魔法特效
- 51 EEPROM操作模板
- MongoDB试用及Java的CRUD