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. buuctf刷题记录

    极客大挑战 2019]EasySQL-1 直接通过输入万能密码:' or 1=1#实现注入: 思考:服务端sql语句应该为:select * from users where username='xx ...

  2. Skywalking光会用可不行,必须的源码分析分析 - Skywalking Agent &插件解析

    3 Skywalking源码导入 接上文,已经学习了Skywalking的应用,接下来我们将剖析Skywalking源码,深度学习Skywalking Agent. 3.1 源码环境搭建 当前最新版本 ...

  3. Windows-VS2017创建.NET项目

    首先新建->项目 选择如下, 注意要选择.NET Framework4.x 选择对应的项目类型 建议选上Web窗体(如果是用于实验的话) 完成后进行测试 如果出现 HTTP Error 403. ...

  4. node图片压缩的两员大将

    一.ishrink 全局安装 npm i ishrink -g 1.按url方式压缩 本地图片地址 sk -u C:\Users\admin\Desktop\images\img 网络图片地址 sk ...

  5. 论文解读(SR-GNN)《Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data》

    论文信息 论文标题:Shift-Robust GNNs: Overcoming the Limitations of Localized Graph Training Data论文作者:Qi Zhu, ...

  6. 实战回忆录:从Webshell开始突破边界

    正文 某授权单位的一次渗透,由于使用的php框架,某cms的上传,从实现webshell开始. 详情 添加监听,生成木马文件更改应用程序名称隐藏上线. 修改休眠时间为10秒 查看主机名whoami 抓 ...

  7. 一次 Keepalived 高可用的事故,让我重学了一遍它!

    原文首发: 你好,我是悟空. 前言 上次我们遇到了一个 MySQL 故障的事故,这次我又遇到了另外一个奇葩的问题: Keepalived 高可用组件的虚拟 IP 持续漂移,导致 MySQL 主从不断切 ...

  8. 广东省30m二级分类土地利用数据(矢量)

    数据下载链接:百度云下载链接​ 广东省,地处中国大陆最南部,属于东亚季风区,从北向南分别为中亚热带.南亚热带和热带气候,是中国光.热和水资源最丰富的地区之一.主要河系为珠江的西江.东江.北江和三角洲水 ...

  9. JavaWEB-01-MySQL基础

    JavaWeb内容 数据库 – 数据存储 MySQL JDBC Maven - 项目管理工具 Mybatis 前端 - 为了前端哥们沟通 HTML+CSS JavaScript Ajax + Vue ...

  10. sudoer文件配置错误修复

    以错误配置权限为例,如果是sudoer文件内容配置错误,替换步骤(4)中相关命令即可 (1)建立两个ssh连接,分别记为A.B (2)A:echo $$获取ID (3)B:pkttyagent --p ...