【QT】使用QPainter绘制图片、文字和形状

    科技2024-06-04  86

    转载请注明出处

    文章目录

    概述绘制图片绘制形状绘制文字


    概述

    QT使用QPainter进行二维图形绘制,QPainter可以绘制各种图形,例如点、线、矩形、圆、椭圆等,QPainter也支持线性变换,例如平移、旋转缩放等,此外,QPainter也支持一些高级特性,例如反走样等等、像素混合、渐变填充等,在绘制前可以设置画笔、画刷、字体属性来控制绘制效果。

    QPainter的使用需要一个“绘图设备”,绘图设备包括但不限于QWidget、QPixmap、QImage等。在定制窗口部件时只需要重新实现paintEvent()函数可以让我们随心所欲的控制窗口的外观、下面介绍使用QPainter绘制图片、形状、文字的方法。

    绘制图片

    void MyPainter::paintEvent(QPaintEvent * ev) { // 指定“绘图设备“为本窗口 QPainter painter(this); // 启用抗锯齿(反走样) painter.setRenderHint(QPainter::Antialiasing, true); // 指定要绘制的图片(将图片路径替换为有效的图片路径) painter.drawPixmap(rect(),QPixmap("/images.jpg")); }

    绘制形状

    void MyPainter::paintEvent(QPaintEvent * ev) { // 指定“绘图设备“为本窗口 QPainter painter(this); // 设置线条颜色和线条样式 painter.setPen(QPen(Qt::green, 5, Qt::SolidLine, Qt::RoundCap)); // 设置矩形的左上角坐标和高度宽度 painter.drawRect(5050100100); }

    绘制文字

    void MyPainter::paintEvent(QPaintEvent * ev) { // 指定“绘图设备“为本窗口 QPainter painter(this); // 设置字体和大小 QFont font; font.setFamily("Microsoft YaHei"); font.setPointSize(30); painter.setFont(font); // 设置字体的对齐方式和内容 painter.drawText(rect(), Qt::AlignCenter, "hello world"); }

    通过使用不同的绘制效果设置和绘制函数可以实现各式各样的窗口样式,除了窗口部件定制之外,也可以指定其他的绘图设备,例如想在一张图片上进行绘制,可将QPainter的绘图设备指定为QPixmap或者QImage。

    Processed: 0.009, SQL: 8