Qt 之 QPicture

2020-08-13  本文已影响0人  水之心

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.0formatVersion为 7 与默认 formatVersion -1 相同。Qt 4.0不支持读取由早期版本的 Qt 生成的图片。

上一篇 下一篇

猜你喜欢

热点阅读