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. Java集合框架(四)-HashMap

    1.HashMap特点 存放的元素都是键值对(key-value),key是唯一的,value是可以重复的 存放的元素也不保证添加的顺序,即是无序的 存放的元素的键可以为null,但是只能有一个key ...

  2. Spring jdbctemplate和事务管理器

    内部bean 对象结构: @Autowiredprivate IAccountService accountService; @Service("accountService")@ ...

  3. mariadb安装配置(主从配置)

    主服务器192.168.206.183 从服务器192.168.206.193 1.创建并编辑 /etc/yum.repos.d/MariaDB.repo文件(主从都要做) [mariadb] nam ...

  4. NC53681 「土」巨石滚滚

    NC53681 「土」巨石滚滚 题目 题目描述 帕秋莉掌握了一种土属性魔法 她使用这种魔法建造了一个大型的土球,并让其一路向下去冲撞障碍 土球有一个稳定性 \(x\) ,如果 \(x < 0\) ...

  5. NC204859 组队

    NC204859 组队 题目 题目描述 你的团队中有 \(n\) 个人,每个人有一个能力值 \(a_i\),现在需要选择若干个人组成一个团队去参加比赛,由于比赛的规则限制,一个团队里面任意两个人能力的 ...

  6. 循环结构-for循环和while循环

    循环语句1--for for循环语句格式: for(初始化表达式①; 布尔表达式②; 步进表达式④){ 循环体③ } 执行流程 执行顺序:①②③④>②③④>②③④-②不满足为止. ①负责完 ...

  7. C语言项目实现顺序表

    #include <stdio.h> #include <stdlib.h> #include "test_顺序表声明.h" /* run this pro ...

  8. Redis 内存优化神技,小内存保存大数据

    大家好,我是「码哥」,大家可以叫我靓仔. 这次码哥跟大家分享一些优化神技,当你面试或者工作中你遇到如下问题,那就使出今天学到的绝招,一招定乾坤! 如何用更少的内存保存更多的数据? 我们应该从 Redi ...

  9. 未找到与名为“xxx”的控制器匹配的类型。

    自己封装了一个BaseApiControllerr把他独立成一个项目出来在引用不行,而用默认自带的ApiControllerr可以. <Error> <Message> 未找到 ...

  10. day02 Java_变量

    参考: 变量的练习: 声明一个变量,一次声明多个变量. 声明变量直接初始化,先声明变量,而后再给变量初始化. 声明整型变量g,声明另一个整型变量h并赋值为h+10,输出变量h的值. 声明整型变量i,在 ...