QPicture 类
QPicture 类是一个记录并回放 QPainter 命令的绘图设备。 更多...
头文件 | #include <QPicture> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Gui) target_link_libraries(mytarget PRIVATE Qt6::Gui) |
qmake | QT += gui |
继承 | QPaintDevice |
- 所有成员的列表,包括继承的成员
- QPicture 是 隐式共享类 的一部分。
公有函数
QPicture(int formatVersion = -1) | |
QPicture(const QPicture &pic) | |
virtual | ~QPicture() |
QRect | boundingRect() const |
const char * | data() const |
bool | isNull() const |
bool | load(const QString &fileName) |
bool | load(QIODevice *dev) |
bool | play(QPainter *painter) |
bool | save(const QString &fileName) |
bool | save(QIODevice *dev) |
void | setBoundingRect(const QRect &r) |
virtual void | setData(const char *data, uint size) |
uint | size() const |
void | swap(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。
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)
直接从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公司有限公司的商标。所有其他商标均为其相应所有者的财产。