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)");//文本内容
}