QPicture 简介
QPicture
类是一种绘画设备,可以记录和重放QPainter
命令。picture 以平台无关的格式将Painter
命令序列化到 IO 设备。它们有时被称为元文件(meta-files)。
Qt picture 使用专有的二进制格式。与许多窗口系统上的本机图片(元文件)格式不同,Qt picture 对其内容没有任何限制。可以在窗口小部件或像素图上绘制的所有内容(例如,fonts, pixmaps, regions, transformed graphics 等)也可以存储在 picture 中。
QPicture
与分辨率无关,即 QPicture
可以在看起来相同的不同设备(例如 svg,pdf,ps,打印机和屏幕)上显示。例如,所见即所得(needed for WYSIWYG)的打印预览需要此功能。QPicture
以默认的系统 dpi 运行,并根据窗口系统缩放绘图器以匹配分辨率差异。
如何记录(record)图片的示例:
picture = QPicture()
painter = QPainter()
painter.begin(picture) # paint in picture
painter.drawEllipse(10,20, 80,70) # draw an ellipse
painter.end() # painting done
picture.save("drawing.pic") # save picture
请注意,每次调用begin()
函数时,都会重置 painter 命令的列表。
如何重播(replay)图片的示例:
picture = QPicture()
picture.load("drawing.pic") # load picture
painter = QPainter()
painter.begin(myImage) # paint in myImage
painter.drawPicture(0, 0, picture) # draw the picture at (0,0)
painter.end() # painting done
pictures 也可以使用play()
绘制。有关 picture 的一些基本数据可用,例如 size()
,isNull()
和boundingRect()
。

formatVersion
参数可用于创建QPicture
,该QPicture
可以由使用早期版本的 Qt 编译的应用程序读取。
请注意,默认formatVersion
为-1,表示当前版本,即对于Qt 4.0
,formatVersion
为 7 与默认 formatVersion
-1 相同。Qt 4.0
不支持读取由早期版本的 Qt 生成的图片。

网友评论