绘图设备
文章图片
文章图片
案例
代码
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QPixmap"
#include "QPainter"
#include "QImage"
#include "QPicture"MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
, ui(new Ui::MainWindow)
{
ui->setupUi(this);
//pixmap绘图设备可以保存在磁盘上专门为 平台做了优化
QPixmap pix(300,300);
//填充颜色
pix.fill(Qt::white);
//声明画家
QPainter painter(&pix);
QPen pen(Qt::green);
pen.setWidth(5);
painter.setPen(pen);
painter.drawEllipse(QPoint(100,100),50,50);
//保存
pix.save("E:/pix.png");
//QImage绘图设备
QImage img(QSize(300,300),QImage::Format_RGB32);
img.fill(Qt::white);
//声明画家
QPainter painter2(&img);
QPen pen2(Qt::yellow);
pen2.setWidth(5);
painter2.setPen(pen2);
painter2.drawEllipse(QPoint(100,100),50,50);
//保存
img.save("E:/img.png");
//Qpicture绘图设备可以记录和重现绘图指令
QPicture pic;
QPainter painter3;
//开始往pic上绘图
painter3.begin(&pic);
QPen pen3(Qt::red);
pen3.setWidth(5);
painter3.setPen(pen3);
painter3.drawEllipse(QPoint(100,300),50,50);
//结束绘图
painter3.end();
//保存
pic.save("E:/pic.xyx");
}void MainWindow::paintEvent(QPaintEvent *)
{
QPainter painter(this);
//利用QImage对像素进行修改
QImage img;
img.load(":/img/back1.jpg");
//修改像素点
for(int i=50;
i<100;
i++)
{
for(int j=50;
j<100;
j++)
{
QRgb value = https://www.it610.com/article/qRgb(255,0,0);
img.setPixel(i,j,value);
}
}painter.drawImage(0,0,img);
//重现pic的绘图指令
QPicture pic;
pic.load("E:/pic.xyx");
painter.drawPicture(0,0,pic);
}MainWindow::~MainWindow()
{
delete ui;
}
【Qt学习|Qt学习笔记——绘图设备】
演示
推荐阅读
- Qt学习|Qt用MQTT协议连接阿里云
- 单元测试|Java 单元测试指北
- Node百科|06.V8 JavaScript 引擎
- CocosCreator|cocoscreator常用代码抄录
- JavaScript|JS之DOM节点操作1
- Python|Python飞机大战项目前篇(一步一步实现---最全笔记)
- C++篇|【C++进阶】第二十五篇——C++11(一)(列表初始化+变量类型推导+右值引用和移动语义+新的类功能+可变模板参数)
- JavaSE|【JavaSE】枚举类——规范的类
- Java|JVM 类加载机制与加载过程