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_NAMESPACE
class MainWindow10_8 : public QMainWindow
{
Q_OBJECT
public:
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"));
//绘制image
QImage 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();
//绘制pixmap
QPixmap 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);
}