初识Qt图像
- 了解QPainter、QImage
.h
#pragma once
#include <QtWidgets/QMainWindow>
#include "ui_firstqt.h"
class FirstQt : public QMainWindow
{
Q_OBJECT
public:
FirstQt(QWidget *parent = Q_NULLPTR);
//重载绘制画面函数
void paintEvent(QPaintEvent* ev) override;
private:
Ui::FirstQtClass ui;
};
.cpp
#include "firstqt.h"
#include <QPainter>
#include <QImage>
static int w = 1280;
static int h = 720;
FirstQt::FirstQt(QWidget *parent)
: QMainWindow(parent)
{
ui.setupUi(this);
resize(w, h);
}
void FirstQt::paintEvent(QPaintEvent* ev)
{
QImage img(w, h, QImage::Format_RGB888);
auto d = img.bits(); //获取img中的数据bit
uchar a = 255;
for (int j = 0; j < h ; j++) {
int b = j * w * 3;
a--;
for (int i = 0; i < w * 3; i += 3) {
d[b + i] = a; //R
d[b + i + 1] = 0; //G
d[b + i + 2] = 0; //B
}
}
QPainter p;
p.begin(this);
p.drawImage(0, 0, img);
p.end();
}
环境
VS2019;Qt5.14.2msvc2017