QPaintDevice 绘图设备

1 QPixmap QImage Qbitmap(黑白色) QPicture QWidget

2 QPixmap 对不同平台做了显示优化  fill(填充颜色) QPainter paintere(&pic) 画家往设备上画 画完保存 save("路径")

3 QImage 可以对像素进行访问,和 QPixmap 差不多 对像素进行修改 img.setPixel();

4 Qpicture 记录和重现绘图指令。save 的时候可以上任意后缀名称 重现利用画家 painter.drawPicture();

widget.h

#ifndef WIDGET_H
#define WIDGET_H #include <QWidget> QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE class Widget : public QWidget
{
Q_OBJECT public:
Widget(QWidget *parent = nullptr);
~Widget();
protected:
void paintEvent(QPaintEvent * even); private:
Ui::Widget *ui;
};
#endif // WIDGET_H

widght.cpp

#include "widget.h"
#include "ui_widget.h"
#include<QPixmap>
#include<QPainter>
#include<QImage>
#include<QPicture> Widget::Widget(QWidget *parent)
: QWidget(parent)
, ui(new Ui::Widget)
{
ui->setupUi(this);
//绘画设备专门为为平台做显示优化的
QPixmap pixmap(300,300);
pixmap.fill(Qt::white);//填充颜色 QPainter painter(&pixmap);
painter.setPen(QPen(Qt::green)); //设置绿色
//在设备上画圆
painter.drawEllipse(QPoint(100,100),100,100);//在点100,100 的位置画圆
pixmap.save("/Users/libin/qtProject/painterDraw/pix.png"); //////图片//////Qimag
QImage imag(300,300,QImage::Format_ARGB32);
QPainter painter2(&imag);
painter2.setPen(QPen(Qt::red));
painter2.drawEllipse(QPoint(150,150),100,100);
imag.save("/Users/libin/qtProject/painterDraw/imag.png"); ////QPictrue///////////绘图设备可以记录和重现绘图指令
QPicture picture;
QPainter painter4;
painter4.setPen(QPen(Qt::red));
painter4.begin(&picture); //开始往设备上画
painter4.drawEllipse(QPoint(20,20),200,200);
painter4.end();//结束
picture.save("/Users/libin/qtProject/paintDevice/pic.zt"); }
void Widget::paintEvent(QPaintEvent *even){
QImage img;
img.load(":/mm.png");
QPainter painter3(this);
for(int i =0;i<200;++i){
for(int j = 0;j<200;++j){
QRgb rbg = qRgb(255,i,j);
img.setPixel(i,j,rbg);
}
}
painter3.drawImage(0,0,img); //读取画笔指令
QPainter q5(this);
QPicture picture3;
picture3.load("/Users/libin/qtProject/paintDevice/pic.zt");
q5.drawPicture(0,0,picture3); } Widget::~Widget()
{
delete ui;
}

QPainter. QpaintDevice 绘图设备的更多相关文章

  1. 界面编程之QT绘图和绘图设备20180728

    /*******************************************************************************************/ 一.绘图 整 ...

  2. [Qt2D绘图]-05绘图设备-QPixmap&&QBitmap&&QImage&&QPicture

    这篇笔记记录的是QPainterDevice(绘图设备,可以理解为一个画板) 大纲:     绘图设备相关的类:QPixmap QBitmap QImage QPicture     QPixmap ...

  3. QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息

    Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...

  4. QPainter 基础绘图

    调用QPainter的接口来绘制一些基本的图形 头文件: #include <QMainWindow> #include <QPainter> namespace Ui { c ...

  5. 28.QT-QPainter介绍

    介绍 可以在QPaintDevice类上绘制各种图形 QPaintDevice类表示QPainter的绘图设备(画布) QpaintDevice子类有QImage.QOpenGLPaintDevice ...

  6. Qt之图形(QPainter的基本绘图)

    简述 Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类. QPainter用来执行 ...

  7. (十一)QPainter绘图, QPixmap,QImage,QPicture,QBitmap

    #include "widget.h" #include "ui_widget.h" #include <QPainter> #include &l ...

  8. Qt中2D绘图问题总结(一)----------基本的绘制与填充

    刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...

  9. Qt开发中的实用笔记一--xml,Qpainter,Delegate:

    因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾! ---------------------------- ...

随机推荐

  1. 【Redis】事件驱动框架源码分析

    aeEventLoop初始化 在server.c文件的initServer函数中,对aeEventLoop进行了初始化: 调用aeCreateEventLoop函数创建aeEventLoop结构体,对 ...

  2. Mybatisi和Spring整合源码分析

    一.MybatisSpring的使用 1.创建 Maven 工程. 2.添加依赖,代码如下 <dependency> <groupId>org.mybatis</grou ...

  3. 什么是工业仿真?工业3D仿真有什么样的市场价值?

    什么是工业仿真? 工业仿真是对实体工业的一种虚拟,它将实体工业中的各个模块转化成数据整合到一个虚拟的体系中去.这个体系会模拟现实工业作业中的每一项工作和流程,并与之实现各种交互. 工业仿真技术作为目前 ...

  4. 重学ES系列之Set实现数组去重、交集、并集、差集

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Spring框架系列(6) - Spring IOC实现原理详解之IOC体系结构设计

    在对IoC有了初步的认知后,我们开始对IOC的实现原理进行深入理解.本文将帮助你站在设计者的角度去看IOC最顶层的结构设计.@pdai Spring框架系列(6) - Spring IOC实现原理详解 ...

  6. js 表面学习 - 认识事件

    事件 描述 onchange HTML 元素已被改变 onclick 用户点击了 HTML 元素 onmouseover 用户把鼠标移动到 HTML 元素上 onmouseout 用户把鼠标移开 HT ...

  7. 【RPA之家转载RPA创新产业峰会回看】机器人流程自动化专利态势报告

    [RPA之家转载RPA创新产业峰会回看]机器人流程自动化专利态势报告 自动化的一个专利情况的监测,就是全球监测的情况.今天我可能给大家汇报的主要是三个方面,第一个方面就是讲一下全球投资智能化的专利的一 ...

  8. Docker 配置 Seata 集成 Nacos

    1.拉取镜像 docker pull seataio/seata-server:1.4.2 docker run --name seata -p 8091:8091 -d seataio/seata- ...

  9. SpringBoot开发 - 什么是热部署和热加载?devtool的原理是什么?

    在SpringBoot开发调试中,如果我每行代码的修改都需要重启启动再调试,可能比较费时间:SpringBoot团队针对此问题提供了spring-boot-devtools(简称devtools)插件 ...

  10. c语言编译器介绍

    目录 一.IDE(集成开发环境) 1.windows 编译器 2.Mac中使用 二.环境安装 1.windows安装gcc A.进入安装所在目录,找到MinGW. B.找到我的电脑,右键选择属性. C ...