QT窗体绘图QPainter

⌚Time: 2023-05-19 23:32:49

👨‍💻Author: Jack Ge

QPainter

INSCODE AI 创作助手:

QPainter是Qt中的一个类,用于在窗口、图像或其他用户界面上绘制图形和文本。它提供了一些方便的方法来画线、矩形、圆、多边形和文本

QPainter绘图函数

INSCODE AI 创作助手:

QPainter是Qt中一个用于绘图的类,它提供了一系列的绘图函数。以下是一些常用的绘图函数:

void QPainter::drawLine(int x1, int y1, int x2, int y2):绘制一条从(x1, y1)到(x2, y2)的直线。

void QPainter::drawRect(int x, int y, int width, int height):绘制一个左上角坐标为(x,y),宽为width,高为height的矩形。

void QPainter::drawEllipse(int x, int y, int width, int height):绘制一个左上角坐标为(x,y),宽为width,高为height的椭圆。

void QPainter::drawArc(int x, int y, int width, int height, int startAngle, int spanAngle):绘制一个左上角坐标为(x,y),宽为width,高为height的椭圆弧,从startAngle开始,扫过spanAngle度。

void QPainter::drawPixmap(int x, int y, const QPixmap& pixmap):绘制一个pixmap图像,左上角坐标为(x,y)。

void QPainter::drawText(int x, int y, const QString& text):在点(x,y)的位置绘制一行文本。

void QPainter::setPen(const QPen& pen):设置画笔,用于绘制线条和轮廓。

void QPainter::setBrush(const QBrush& brush):设置画刷,用于填充形状和区域。

以上是常用的绘图函数,QPainter提供了更多的绘图函数,可以根据需要选择使用。

包含头文件




#include <QPainter>

QPainter能够在任何QPaintDevice上绘图,如QImage, QOpenGLPaintDevice, QPagedPaintDevice, QPaintDeviceWindow, QPicture, and QPixmap

当被绘制的设备是一个widget的时候,QPainter只能在paintEvent()函数中或者被该函数调用的函数当中使用

Qt::BrushStyle

Qt::PenStyle

qt窗体区域图

在窗体上进行绘图代码




void MainWindow::paintEvent(QPaintEvent *event){

    QPainter painter(this);

    //反走样

    painter.setRenderHint(QPainter::Antialiasing, true);

    //画背景图

    painter.drawPixmap(400,30, 200, 180, QPixmap(":/new/prefix1/pic.jpg"));



    //定义画笔

    QPen pen;

    pen.setWidth(2);//设置线宽

    pen.setColor(QColor(222,255,55));//颜色

    pen.setStyle(Qt::SolidLine);//样式

    //画刷

    QBrush brush;

    brush.setColor(Qt::black);//颜色

    brush.setStyle(Qt::SolidPattern);//样式

    //设置画笔画刷

    painter.setPen(pen);

    painter.setBrush(brush);

    //画直线

    painter.drawLine(50,50,150,50);

    painter.drawLine(20,50,250,150 );

    //画矩形

    painter.drawRect(70,200,100,50);

    //画椭圆

    painter.drawEllipse(QPoint(270,150),50,80);



    //画文字

    QFont font;

    font.setFamily("MV Boli");//文字字体

    font.setPixelSize(20);//文字大小

    pen.setColor(QColor(0,255,55));//文字颜色

    painter.setFont(font);

    painter.setPen(pen);

    painter.drawText(200, 300, "Qt Creator 3.4.2 (opensource)");//文本内容



}