当前位置: 首页 > news >正文

qt QPicture详解

1、概述

QPicture类是Qt框架中的一个重要图形类,它主要用于记录和回放QPainter的绘图指令。这个类能够跨平台、无分辨率依赖地绘制图形,非常适合用于实现打印预览和图像操作等场景。QPicture可以将绘图操作序列化为一种独立于平台的格式,保存在IO设备上,这些被序列化的绘图指令有时也被称为元文件。Qt使用一种专有的二进制格式来存储这些元文件,与许多窗口系统上的原生图片格式不同,Qt对其内容没有限制,允许在控件或像素图上绘制各种元素,如字体、位图、区域、变换等,并将它们存储在同一张图片中。

2、重要方法

QPicture类提供了一系列重要的方法来处理图片数据,包括但不限于:

  • load():从文件或其他IO设备中加载QPicture对象。
  • save():将QPicture对象保存到文件或其他IO设备中。
  • play():在指定的绘图设备上重放QPicture中的绘图指令。
  • size():返回QPicture对象的大小。
  • isNull():检查QPicture对象是否为空。
  • boundingRect():返回QPicture对象的边界矩形。

此外,QPicture的构造函数和析构函数也是其重要的组成部分,用于创建和销毁QPicture对象。

#include <QApplication>  
#include <QWidget>  
#include <QPainter>  
#include <QPicture>  
#include <QPixmap>  class MyWidget : public QWidget {  
protected:  void paintEvent(QPaintEvent *event) override {  QPainter painter(this);  // 加载已保存的QPicture  QPicture picture;  picture.load("drawing.pic");  // 在当前窗口上重放QPicture中的绘图指令  painter.drawPicture(0, 0, picture);  }  
};  int main(int argc, char *argv[]) {  QApplication app(argc, argv);  // 创建一个QPicture对象并开始绘图  QPicture picture;  QPainter painter;  painter.begin(&picture);  painter.drawEllipse(10, 20, 80, 70); // 绘制一个椭圆形  painter.end();  // 将QPicture保存到文件  picture.save("drawing.pic");  // 创建一个窗口并显示  MyWidget window;  window.resize(200, 200);  window.show();  return app.exec();  
}

觉得有帮助的话,打赏一下呗。。

           

http://www.lryc.cn/news/474028.html

相关文章:

  • ScheduledFuture Source Code Analysis
  • 【CSS】CSS 样式重置 (normalize.css 和 reset.css) 和通用样式配置
  • 自动化机器学习(AutoML)详解
  • Linux: network:erspan0
  • 第11课 计算思维
  • ACL, ACL Workshop, ACL Findings 解释
  • 《使用Gin框架构建分布式应用》阅读笔记:p272-p306
  • 【搜索引擎】俄罗斯搜索引擎yandex
  • 加密源代码|html代码如何加密保护?3分钟学会4种源代码加密妙招,代码人必看
  • Jetson Orin NX平台自研载板 IMX477相机掉线问题调试记录
  • spring-boot(整合mybatisplus、及常见注解)
  • 深度学习:yolov3的使用--建立模型
  • 关于我、重生到500年前凭借C语言改变世界科技vlog.13——深入理解指针(3)
  • 每日算法一练:剑指offer——数组篇(6)
  • 【环境搭建】Apache ZooKeeper 3.8.4 Stable
  • 算法练习——双指针
  • vue中el-table显示文本过长提示
  • JS 字符串拼接并去重
  • opencv 图像预处理
  • SAP B1 功能模块字段介绍 - 价格清单(下)
  • 传智杯 第六届-复赛-D
  • Java - 数组实现大顶堆
  • ifuse挂载后,在python代码中访问iOS沙盒目录获取app日志
  • Windows WSL环境下安装 pytorch +ROCM 支持AMD显卡
  • uniapp中skymap.html(8100端口)提示未登录的排查与解决方法
  • 训练模型时梯度出现NAN或者INF(禁用amp的不同level)
  • Maven核心概念
  • Sonatype Nexus 部署手册
  • TLV320AIC3104IRHBR 数据手册 一款低功耗立体声音频编解码器 立体声耳机放大器芯片麦克风
  • (8)结构体、共用体和枚举类型数据