QT绘制图像QImage-QPixmap-QBitmap-QPicture

- #ifndef MAINWINDOW10_8_H
- #define MAINWINDOW10_8_H
-
- #include
-
- 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
- #include
- #include
- #include
- #include
- //绘制图像
- 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);
- }
-