QT绘制图像QImage-QPixmap-QBitmap-QPicture
#ifndef MAINWINDOW10_8_H
#define MAINWINDOW10_8_H#include <QMainWindow>QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow10_8; }
QT_END_NAMESPACEclass MainWindow10_8 : public QMainWindow
{Q_OBJECTpublic:MainWindow10_8(QWidget *parent = nullptr);~MainWindow10_8();private:Ui::MainWindow10_8 *ui;
protected:void paintEvent(QPaintEvent *event);
};
#endif // MAINWINDOW10_8_H
#include "mainwindow10_8.h"
#include "./ui_mainwindow10_8.h"
#include <QPainter>
#include <QImage>
#include <QPixmap>
#include <QBitmap>
#include <QPicture>
//绘制图像
MainWindow10_8::MainWindow10_8(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow10_8)
{ui->setupUi(this);
}MainWindow10_8::~MainWindow10_8()
{delete ui;
}void MainWindow10_8::paintEvent(QPaintEvent *event)
{QPainter painter2(this);// painter2.setPen(Qt::blue);// painter2.drawText(0,0,60,60,Qt::AlignCenter,tr("QImage"));//绘制imageQImage image2(100,100,QImage::Format_ARGB32);painter2.begin(&image2);painter2.setPen(QPen(Qt::green,3));painter2.setBrush(Qt::yellow);painter2.drawRect(10,10,60,60);painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QImage"));painter2.setBrush(QColor(0,0,0,100));painter2.drawRect(50,50,40,40);// painter2.save();painter2.end();//绘制pixmapQPixmap pix(100,100);painter2.begin(&pix);painter2.setPen(QPen(Qt::green,3));painter2.setBrush(Qt::yellow);// painter2.translate(180,0);painter2.drawRect(10,10,60,60);painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QPixmap"));painter2.setBrush(QColor(0,0,0,100));painter2.drawRect(50,50,40,40);painter2.end();QBitmap bit(100,100);painter2.begin(&bit);painter2.setPen(QPen(Qt::green,3));painter2.setBrush(Qt::yellow);// painter2.restore();// painter2.translate(0,100);painter2.drawRect(10,10,60,60);painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QBitmap"));painter2.setBrush(QColor(0,0,0,100));painter2.drawRect(50,50,40,40);painter2.end();QPicture picture;painter2.begin(&picture);painter2.setPen(QPen(Qt::green,3));painter2.setBrush(Qt::yellow);//painter2.restore();// painter2.translate(180,0);painter2.drawRect(10,10,60,60);painter2.drawText(10,10,60,60,Qt::AlignCenter,tr("QPicture"));painter2.setBrush(QColor(0,0,0,100));painter2.drawRect(50,50,40,40);painter2.end();//在widget部件上进行绘制painter2.begin(this);painter2.drawImage(50,20,image2);painter2.drawPixmap(200,20,pix);painter2.drawPixmap(50,170,bit);painter2.drawPicture(200,170,picture);
}