QPainter. QpaintDevice 绘图设备
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 绘图设备的更多相关文章
- 界面编程之QT绘图和绘图设备20180728
/*******************************************************************************************/ 一.绘图 整 ...
- [Qt2D绘图]-05绘图设备-QPixmap&&QBitmap&&QImage&&QPicture
这篇笔记记录的是QPainterDevice(绘图设备,可以理解为一个画板) 大纲: 绘图设备相关的类:QPixmap QBitmap QImage QPicture QPixmap ...
- QT_8_Qt中的事件处理_定时器事件_定时器类_事件分发器_事件过滤器_绘图事件_高级绘图事件_绘图设备_QFile 文件读写_QFileInfo文件信息
Qt中的事件处理 1.1. 捕获QLabel中是鼠标事件 1.2. enterevent 鼠标进入 1.3. leaveevent 鼠标离开 1.4. 鼠标按下MyLabel::mousePressE ...
- QPainter 基础绘图
调用QPainter的接口来绘制一些基本的图形 头文件: #include <QMainWindow> #include <QPainter> namespace Ui { c ...
- 28.QT-QPainter介绍
介绍 可以在QPaintDevice类上绘制各种图形 QPaintDevice类表示QPainter的绘图设备(画布) QpaintDevice子类有QImage.QOpenGLPaintDevice ...
- Qt之图形(QPainter的基本绘图)
简述 Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,它主要基于QPainter.QPaintDevice和QPaintEngine这三个类. QPainter用来执行 ...
- (十一)QPainter绘图, QPixmap,QImage,QPicture,QBitmap
#include "widget.h" #include "ui_widget.h" #include <QPainter> #include &l ...
- Qt中2D绘图问题总结(一)----------基本的绘制与填充
刚刚开始学习Qt不久,才开始渐渐地熟悉基础内容,学习过程中的一些知识的总结和感悟希望通过博客记录下来,与大家分享学习的同时,也是对自己坚持下去的鞭策,废话不多说了,开始第一次的小总结吧. Qt提供了强 ...
- Qt开发中的实用笔记一--xml,Qpainter,Delegate:
因为开发环境不能联网,开发中用到有用的知识就记在word稳定中,不知不觉就记载了几十页,为避免笔记丢失,现在就一点点忘博客上搬,方便日后回顾! ---------------------------- ...
随机推荐
- JS:in语法
1.应用于判断对象中是否有某一个成员 var obj = { name: "lili", age:10, gender:"girl" } console.log ...
- redis主从复制(九)
先来简单了解下redis中提供的集群策略, 虽然redis有持久化功能能够保障redis服务器宕机也能恢复并且只有少量的数据损失,但是由于所有数据在一台服务器上,如果这台服务器出现硬盘故障,那就算是有 ...
- node线上项目连接mysql出现 504 Gateway Time-Out
var connection = mysql.createConnection({host : 'localhost',user : 'root',password : '123456',port: ...
- Java开发学习(六)----DI依赖注入之setter及构造器注入解析
一.DI依赖注入 首先来介绍下Spring中有哪些注入方式? 我们先来思考 向一个类中传递数据的方式有几种? 普通方法(set方法) 构造方法 依赖注入描述了在容器中建立bean与bean之间的依赖关 ...
- Sentiment analysis in nlp
Sentiment analysis in nlp The goal of the program is to analysis the article title is Sarcasm or not ...
- Linux YUM yum-utils 模块详解
yum-utils 详解 yum-utils是yum的工具包集合,由不同的作者开发,使yum使用起来更加方便和强大.包括:debuginfo-install,find-repos-of-install ...
- ASP.NET Core 根据环境变量支持多个 appsettings.json配置文件 (开发和生产)
新建一个项目,web根目录会出现一个 appsettings.json 配置文件, 此时添加--新建项,输入 appsettings.Development.json 再新增一个,appsetti ...
- Java ArrayList和LinkedList
目录 集合的概念 集合体系结构 常用list集合 list集合的特点 ArrayList LinkedList 创建对象 常用方法 遍历 ArrayList和LinkedList的区别 集合的概念 ...
- ARCGIS API for Python进行城市区域提取
ArcGIS API for Python主要用于Web端的扩展和开发,提供简单易用.功能强大的Python库,以及大数据分析能力,可轻松实现实时数据.栅格数据.空间数据等多源数据的接入和GIS分析 ...
- 第十九天python3 json和messagepack
json的数据类型官网:https://www.json.org/ 值: 双引号内的字符串,数值,true和false,null,对象,数组:字符串: 双引号内的任意字符的组合,可以有专一字符:数值: ...