QPicture 类

QPicture 类是一个记录并回放 QPainter 命令的绘图设备。 更多...

头文件 #include <QPicture>
CMakefind_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmakeQT += gui
继承 QPaintDevice

公有函数

QPicture(int formatVersion = -1)
QPicture(const QPicture &pic)
virtual~QPicture()
QRectboundingRect() const
const char *data() const
boolisNull() const
boolload(const QString &fileName)
boolload(QIODevice *dev)
boolplay(QPainter *painter)
boolsave(const QString &fileName)
boolsave(QIODevice *dev)
voidsetBoundingRect(const QRect &r)
virtual voidsetData(const char *data, uint size)
uintsize() const
voidswap(QPicture &other)
QPicture &operator=(const QPicture &p)
QPicture &operator=(QPicture &&other)
QDataStream &operator<<(QDataStream &s, const QPicture &r)
QDataStream &operator>>(QDataStream &s, QPicture &r)

详细描述

图片将 painter 命令序列化到 IO 设备,以平台无关的格式。它们有时也被称为元文件。

Qt 图片使用专有二进制格式。与许多窗口系统上的本地图片(元文件)格式不同,Qt 图片的内容没有限制。可以在小部件或光栅图上绘制的任何内容(例如字体、光栅图、区域、转换后的图形等)也可以存储在图片中。

QPicture 是分辨率无关的,即 QPicture 可以在不同设备上以相同的方式显示(例如 svg、pdf、ps、打印机屏幕等)。这对于 WYSIWYG 打印预览是有用的。QPicture 在默认系统 dpi 上运行,并根据窗口系统的差异调整画家以匹配分辨率。

记录图片的示例

QPicture picture;
QPainter painter;
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

请注意,每次调用 QPainter::begin() 函数时都会重置画家命令的列表。

回放图片的示例

QPicture picture;
picture.load("drawing.pic");           // load picture
QPainter painter;
painter.begin(&myImage);               // paint in myImage
painter.drawPicture(0, 0, picture);    // draw the picture at (0,0)
painter.end();                         // painting done

图片也可以使用 play() 绘制。一些关于图片的基
本数据是可以获取的,例如,size(),isNull() 和 boundingRect()。

另请参阅 QMovie

成员函数文档

[显式] QPicture::QPicture(int formatVersion = -1)

构建一个空的图片。

使用 formatVersion 参数可以创建一个可以被使用较早版本的 Qt 等编译的应用程序读取的 QPicture。

请注意,默认的 formatVersion 是 -1,这意味着当前的发布版本,例如,对于 Qt 4.0,formatVersion 为 7 相当于默认的格式版本 -1。

Qt 4.0 中不支持读取早期版本的 Qt 生成的图片。

QPicture::QPicture(const QPicture &pic)

构建 pic 的副本。

由于 隐式共享,这个构造函数运行速度快。

[虚拟 noexcept] QPicture::~QPicture()

销毁图片。

QRect QPicture::boundingRect() const

返回图片的边界矩形,如果没有数据则返回一个无效的矩形。

另请参阅 setBoundingRect

const char *QPicture::data() const

返回指向图片数据的指针。该指针仅在调用此图片的下一个非 const 函数前有效。如果图片没有数据,则返回的指针为 0。

另请参阅 setDatasize,和 isNull

bool QPicture::isNull() const

如果没有数据则返回 true;否则返回 false。

bool QPicture::load(const QString &fileName)

从由 fileName 指定的文件载入图片,如果成功则返回 true;否则无效化图片并返回 false

另请参阅 save

bool QPicture::load(QIODevice *dev)

这是一个重载函数。

dev 是用于载入的设备。

bool QPicture::play(QPainter *painter)

使用 painter 重新播放图片,如果成功则返回 true;否则返回 false

此函数与 QPainter::drawPicture() 的 (x, y) = (0, 0) 完全一样。

注意: 此函数不会保留画家的状态。

bool QPicture::save(const QString &fileName)

将图片保存到由 fileName 指定的文件,如果成功则返回 true;否则返回 false

另请参阅 load

bool QPicture::save(QIODevice *dev)

这是一个重载函数。

dev是将用于保存的设备。

void QPicture::setBoundingRect(const QRect &r)

将图片的边界矩形设置为r。会覆盖自动计算值。

另请参阅boundingRect

[virtual] void QPicture::setData(const char *data, uint size)

直接从datasize设置图片数据。此函数会复制输入数据。

另请参阅data()和size

uint QPicture::size() const

返回图片数据的尺寸。

另请参阅data

[noexcept] void QPicture::swap(QPicture &other)

与当前图片交换other。此操作非常快速且从不失败。

QPicture &QPicture::operator=(const QPicture &p)

将图片p赋值给当前图片,并返回对当前图片的引用。

[noexcept] QPicture &QPicture::operator=(QPicture &&other)

other移动赋值给当前QPicture实例。

相关非成员函数

QDataStream &operator<<(QDataStream &s, const QPicture &r)

将图片r写入流s,并返回对流的引用。

QDataStream &operator>>(QDataStream &s, QPicture &r)

从流s中读取图片到r,并返回对流的引用。

© 2024 Qt公司有限公司。此处包含的文档贡献是相应所有者的版权。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证1.3版许可的。Qt及其相关标志是芬兰及其它国家/地区的Qt公司有限公司的商标。所有其他商标均为其相应所有者的财产。