Qt学习笔记——绘图设备

绘图设备

Qt学习笔记——绘图设备_第1张图片

Qt学习笔记——绘图设备_第2张图片


案例

代码

#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 = 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,开发语言)