QPicture类

 

QPicture类是一个记录和回放QPainter命令的绘制设备。 

Header:#include <QPicture>
CMake:find_package(Qt6 REQUIRED COMPONENTS Gui)
target_link_libraries(mytarget PRIVATE Qt6::Gui)
qmake:QT += gui
Inherits:<<< QPaintDevice

【详细描述】

一张图片会以独立于平台的格式将 painter 命令序列化到 IO 设备上。它们有时被称为元文件。

Qt 图片使用一种专有的二进制格式,这与许多窗口系统上的原生图片(元文件)格式不同,Qt图片对其内容没有限制,可以在控件或像素图上绘制一切(例如: fonts, pixmaps, regions, transformed等),也可以存储在一张图片中。
 

QPicture与分辨率无关。一个QPicture可以显示在不同的设备上(例如svg、pdf、ps、打印机和屏幕),看起来都相同,这正是所见即所得的打印预览所必须的。QPicture在默认系统dpi中运行,并根据窗口系统缩放 painter 以匹配分辨率的差异。

  • 以下是记录图片的示例:
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() 函数时, painter 命令的列表都会被重置。

  • 重播图片的示例:
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() and boundingRect()访问。


【公有函数】

QPicture::QPicture(int formatVersion = -1)

构造空图片。

格式版本参数可用于创建一个由使用Qt的早期版本编译的应用程序可以读取的Q图片。

默认格式版本是-1,它表示当前版本。

QPicture::QPicture(const QPicture &pic)

构造一个图片的副本。

由于隐式共享,这个构造函数非常快。

virtual  QPicture::~QPicture()

QRect

boundingRect() const

返回图片的边界矩形,如果图片不包含数据,则返回一个无效的矩形。
const char *

data() const

返回一个指向图片数据的指针。该指针只有在在这张图上调用下一个非常量函数之前才有效。如果图片中不包含任何数据,则返回的指针为0。
bool

isNull() const

如果图片不包含任何数据,则返回true;否则返回false。
bool

load(const QString &fileName)

从文件名指定的文件中加载图片,如果成功则返回true;否则将使图片无效并返回false。
bool

load(QIODevice *dev)

重载load函数,这里dev是用于加载的设备。
bool

play(QPainter *painter)

 使用Painter回放图片,如果成功则返回true;否则返回false。

这个函数与QPainter::drawPicture() 和 (x, y) = (0, 0) 完全相同。

注意:Painter的状态并没有被这个功能保存下来。

bool

save(const QString &fileName)

将图片保存到文件名指定的文件中,成功后返回true,否则返回false。
bool

save(QIODevice *dev)

重载save函数,这里dev是用于保存的设备。
void

setBoundingRect(const QRect &r)

将图片的边界矩形设置为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)

<<<返回上一级【QPaintDevice】

<<<返回根页面 

  • 21
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值