Qt开发:如何使用QPainter进行2D图形的绘制

Qt的QPainter详细介绍 QPainter是Qt框架中的一个类,主要用于在各种设备上进行2D图形绘制,如窗口、位图、打印设备等。它提供了一系列绘图函数,可以实现绘制点、线、曲线、形状、文本、图像以及复杂的绘画操作。使用QPainter创建一个QPainter对象。将QPainter与要绘图的设备(如QPixmapQImage或QWidget)关联起来,通过调用begin()函数。使用QPainter提供的绘图函数进行绘图,如drawLine()drawRect()drawText()等。绘制完毕后,调用end() 阅读详情
AI摘要

本文围绕Qt中QPainter类展开,介绍其用于2D图形绘制的功能。阐述使用QPainter绘图的步骤,强调在paintEvent方法绘图的原因。还说明了绘图区域、常用方法,以及QPen、QBrush、QFont的主要功能和属性,帮助开发者掌握2D图形绘制技巧。

一、QPainter简介

QPainter 是Qt框架中的一个强大的绘图类,用于在各种设备上进行 2D 图形绘制,例如窗口、图像、打印机等。QPainter 提供了丰富的 API,可以用来绘制形状、文本、图像以及其他图形对象,还支持高级特性,比如反锯齿、透明度、渐变填充等。绘图系统基于QPainter、QPaintDevice和QPaintEngine类,QPainter是用来绘图操作的类,QPaintDevice是一个可以使用QOPainter进行绘图的抽象的二维界面,QPaintEngine给QPainter提供在不同设备上绘图的接口。QPaintEngine类由QPainter和QPaintDevice内部使用,应用程序一般无需和QPaintEngine打交道,除非要创建自己的设备类型。一般的绘图设备包括QWidget、QPixmap、QImage等,这些绘图设备为QPainter提供一个画布。

二、如何使用QPainter绘图

使用QPainter绘图步骤:

  1. 需要继承QWidget,然后重写painEvent方法。
  2. 在重写的paintEvent方法中创建一个QPainter对象。
  3. 设置我们绘图中需要的参数,例如笔(QPen)、画刷(QBrush)、字体(QFont)等。
  4. 最后调用对应的方法去绘制我们想要的图像,如直接、三角形、矩形、圆形等。

那么我们为什么一定要在重写的painEvent方法中去绘制图形呢,而不是在其他地方绘制?

  1. 界面更新机制:当窗口被最小化、放大、还原或被其他窗口覆盖时,窗口内容可能会丢失,因此需要重绘。Qt 会自动触发 paintEvent 来重新绘制窗口内容,而不会漏掉任何刷新请求。这种机制避免了手动管理重绘的繁琐,同时保证绘图操作的统一性。
  2. 确保绘图的正确顺序:paintEvent 确保所有绘图内容按照先后顺序绘制。特别是当窗口部件有多个层次的绘制需求时,paintEvent 的绘制过程由 Qt 的绘制系统管理,从而避免了绘制冲突和不一致的问题。
  3. Qt 使用了“脏矩形”(dirty rectangle)更新策略,即仅重绘需要更新的区域。paintEvent 会自动接收到需要更新的区域(通过 QPaintEvent 的 region() 获取),这样可以提高效率,避免不必要的重绘和资源浪费。

三、QPainter的绘图区域

在这里插入图片描述
QWidget的绘制区域就是其窗口的内部区域,如上图所示,是在一个QWidget窗口上绘制了一个填充矩形。在整个窗口内部的矩形区就是QPainter可绘图的区域。QWidget的内部绘图区的坐标系统如上图所示,坐标系统的单位是像素,左上角坐标为(0, 0),向右是X轴正方向,向下是Y轴正方向,绘图区的宽度由QWidget::width()函数获取,高度由QWidget::height()函数获取,所以绘图区右下角的点坐标为(width(), height())。我们使用QPainter在绘图设备上绘图,主要绘制的是一些基本的图形元素,包括点、直线、圆形、矩形、曲线、文字等,控制这些绘图元素特性的主要是QPainter的三个属性。

  1. QPen:它主要用于控制线条的颜色、宽度、线型等。
  2. QBrush:用于设置一个区域的填充特性,可以设置填充颜色、填充方式、渐变特性等,还可以采用图片做材质填充。
  3. QFont:用于绘制文字时,设置文字的字体样式、大小属性等。

当然除了上述的三个基本的绘图属性,还有一些其他的功能结合,比如叠加模式、旋转和缩放等功能。

以下示例代码展示了如何使用 QPainter 绘制矩形:

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this); //创建与绘图设备关联的QPainter对象
    painter.setRenderHint(QPainter::Antialiasing); //启用反走样,使得绘图边缘更平滑,减少锯齿状边缘
    painter.setRenderHint(QPainter::TextAntialiasing); //启用文本反走样,改善文本渲染的质量
    QRect rect(this->width() / 4, this->height() / 4, this->width() / 2, this->height() / 2);

    QPen pen; //设置画笔
    pen.setWidth(3); //线宽
    pen.setColor(Qt::red); //划线颜色
    pen.setStyle(Qt::SolidLine); //线端点样式
    pen.setCapStyle(Qt::FlatCap); //线的样式,实践、虚线等
    pen.setJoinStyle(Qt::RoundJoin); //线的连接点样式
    painter.setPen(pen);

    QBrush brush;
    brush.setColor(Qt::yellow); //画刷颜色
    brush.setStyle(Qt::SolidPattern); //画刷填充样式
    painter.setBrush(brush);

    painter.drawRect(rect); //绘图

    QWidget::paintEvent(event);
}

四、QPainter的常用方法

QPainter支持基本图形绘制、文本绘制、图像绘制等多种功能,并包含了高级的绘制选项,比如反锯齿、透明度、渐变填充、坐标变换等。

基本形状的绘制:

drawLine():绘制直线。
drawRect():绘制矩形。
drawEllipse():绘制椭圆。
drawPolygon():绘制多边形。
drawPath():绘制复杂路径。

文本绘制:

drawText():在指定位置绘制文本,支持设置字体、颜色等属性。

图形绘制:

drawImage():在指定位置绘制QImage对象。
drawPixmap():绘制QPixmap,适用于显示图标等小图片。

设置绘制属性:

setPen():设置绘制线条的样式、颜色、宽度等。
setBrush():设置填充图形的画刷,可以时纯色、渐变色、纹理等。
setFont():设置文本绘制的字体。
setOpacity():设置透明度。

高级功能:

抗锯齿:通过setRenderHint(QPainter::Antialiasing, true)开启抗锯齿,以获取更平滑的绘制效果。
渐变填充:支持线性渐变、径向渐变和锥形渐变,可以使用QLinearGradient、QRadialGradient等来来实现。
坐标转换:QPainter提供了平移(translate())、旋转(rorate())和缩放(scale())等方法,可以方便的对绘制的内容进行几何变化。

五、QPen的主要功能和属性

QPen 是 Qt 中用于定义绘图线条样式的类,它控制线条的颜色、宽度、线型、连接风格、端点样式等。 QPen 通常用于 QPainter,可以自定义绘制图形的边框属性,使其绘图效果更灵活和丰富。

1.设置颜色 (color)
设置绘制线条的颜色,可以使用 QColor 或标准颜色名来指定,例如 Qt::black、QColor(255, 0, 0)。
示例:

pen.setColor(Qt::blue)

2.设置宽度 (width)
设置线条的宽度,以像素为单位。默认宽度为 1。
示例:

pen.setWidth(3)

3.设置线型 (style)
设置线条样式,可以选择实线、虚线、点线等。Qt::PenStyle 枚举提供了一些预定义的样。
示例:

pen.setStyle(Qt::DashLine)

Qt::SolidLine:实线
Qt::DashLine:虚线
Qt::DotLine:点线
Qt::DashDotLine:点划线
Qt::DashDotDotLine:双点划线

4.设置端点样式 (capStyle)
设置线条的端点样式(在绘制线段时起作用),即线条的起点和终点形状。
示例:

pen.setCapStyle(Qt::RoundCap)

Qt::SquareCap:方形端点
Qt::FlatCap:平直端点
Qt::RoundCap:圆形端点

5.设置连接样式 (joinStyle)
设置线段交汇处的连接样式(适用于折线等多段线的连接点)。

> Qt::MiterJoin:尖角连接
> Qt::BevelJoin:斜角连接
> Qt::RoundJoin:圆角连接

示例:
```cpp
pen.setJoinStyle(Qt::RoundJoin)

**6.设置虚线模式 (dashPattern)**
对于自定义虚线,可以通过 setDashPattern() 设置虚线的具体模式,传入一个 QVector<qreal> 来定义虚线和间隔的交替长度。
 示例:
```cpp
pen.setDashPattern({3, 5}); // 表示绘制3个像素线段,间隔5个像素。

下面是一个完整示例,展示如何创建并设置 QPen 以绘制不同风格的线条:

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    QPen pen;
    pen.setColor(Qt::red);
    pen.setWidth(5);
    pen.setStyle(Qt::DashDotLine);
    pen.setCapStyle(Qt::RoundCap);
    pen.setJoinStyle(Qt::RoundJoin);

    painter.setPen(pen);
    painter.drawLine(10, 10, 200, 10);

    // 绘制另一个线条
    pen.setColor(Qt::blue);
    pen.setStyle(Qt::DotLine);
    painter.setPen(pen);
    painter.drawLine(10, 30, 200, 30);

    QWidget::paintEvent(event);
}

在这里插入图片描述

六、QBrush的主要功能和属性

QBrush 是 Qt 中的填充工具类,用于定义图形的填充模式(即画刷样式),可填充纯色、渐变色、纹理、图案等。QBrush 在绘制形状时可以配合 QPainter 使用,以设置形状内部的填充效果。

1.设置填充颜色 (color)
QBrush 可以使用纯色填充图形区域。可以通过 QColor 或颜色名称(如 Qt::red)来定义填充颜色。
示例:

QBrush brush(Qt::blue)

2.设置填充样式 (style)
QBrush 提供了丰富的填充样式,
常用的样式包括:

Qt::SolidPattern:实心填充。
Qt::NoBrush:无填充,区域将保持透明。
Qt::Dense1Pattern 到 Qt::Dense7Pattern:不同密度的点状填充。
Qt::HorPattern / Qt::VerPattern:水平或垂直线条填充。
Qt::CrossPattern / Qt::DiagCrossPattern:十字交叉或对角交叉线条填充。
Qt::LinearGradientPattern、Qt::RadialGradientPattern、Qt::ConicalGradientPattern:渐变填充。

示例:

brush.setStyle(Qt::Dense4Pattern)

3.设置渐变填充 (QGradient)
QBrush 支持渐变色填充,可以创建线性渐变(QLinearGradient)、径向渐变(QRadialGradient)和锥形渐变(QConicalGradient)。可以设置渐变的起点、终点以及多种颜色,从而实现平滑的颜色过渡。
示例:

QLinearGradient gradient(0, 0, 100, 100);
gradient.setColorAt(0, Qt::red);
gradient.setColorAt(1, Qt::blue);
QBrush brush(gradient);

4.设置纹理填充 (QPixmap)
QBrush 支持使用图像纹理填充,即通过 QPixmap 对象指定纹理图案,可以将图案作为填充效果应用到图形上。
示例:

QPixmap texture(":/images/pattern.png");
QBrush brush(texture);

5.设置透明度
QBrush 的透明度可以通过 QColor 的 alpha 值或渐变的透明设置来控制,以创建半透明效果的填充。
示例:

QBrush brush(QColor(0, 255, 0, 128));  // 半透明绿色

以下示例展示了如何使用不同的 QBrush 填充样式绘制矩形和椭圆:

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter(this);

    // 实心填充
    QBrush solidBrush(Qt::blue, Qt::SolidPattern);
    painter.setBrush(solidBrush);
    painter.drawRect(10, 10, 100, 100);

    // 渐变填充
    QLinearGradient gradient(0, 0, 100, 100);
    gradient.setColorAt(0, Qt::red);
    gradient.setColorAt(1, Qt::yellow);
    QBrush gradientBrush(gradient);
    painter.setBrush(gradientBrush);
    painter.drawEllipse(120, 10, 100, 100);

    // 纹理填充
    QPixmap texture("./cat.jpg");
    QBrush textureBrush(texture);
    painter.setBrush(textureBrush);
    painter.drawRect(230, 10, 100, 100);

    // 点状填充
    QBrush denseBrush(Qt::green, Qt::Dense3Pattern);
    painter.setBrush(denseBrush);
    painter.drawEllipse(350, 10, 100, 100);

    QWidget::paintEvent(event);
}

在这里插入图片描述

七、QFont的主要功能和属性

QFont 是 Qt 中用于设置文本字体的类,可以定义字体的家族、样式、大小等。它在绘制文本时通常与 QPainter 搭配使用,使开发者能够精确控制文本的外观。

1.设置字体家族 (family)
设置字体的家族名称,例如 “Arial”、“Times New Roman”、“Courier” 等,具体可选的字体家族取决于系统上已安装的字体。
示例:

font.setFamily("Arial")

2.设置字体大小 (pointSize 和 pixelSize)
字体大小可以通过点大小(point size)或像素大小(pixel size)来设置。setPointSize() 以点为单位,而 setPixelSize() 以像素为单位。
示例:

font.setPointSize(12);      // 设置字体为 12 点大小
font.setPixelSize(20);      // 设置字体为 20 像素大小

3.设置字体加粗 (bold)
通过设置 setBold(true) 可以使字体加粗。
示例:

font.setBold(true);

4.设置字体为斜体 (italic)
通过 setItalic(true) 将字体设置为斜体。
示例:

font.setItalic(true);

5.设置字体下划线 (underline)
通过 setUnderline(true) 在字体下方添加下划线。
示例:

font.setUnderline(true);

6.设置字间距 (letterSpacing)
设置字符之间的间距,可以通过 setLetterSpacing() 增加或减少字母之间的距离。常见单位为像素。
示例:

font.setLetterSpacing(QFont::AbsoluteSpacing, 2); // 增加 2 像素的字间距

7.设置字重 (weight)
QFont 提供多种预定义的字重(粗细),如 QFont::Thin、QFont::Light、QFont::Normal、QFont::Bold 等,通过 setWeight() 进行设置。
示例:

font.setWeight(QFont::Bold);

8.设置字体间距 (spacing)
设置字体的间距缩放因子,可以通过 setStretch() 方法调整字体宽度的百分比(默认 100%)。
示例:

font.setStretch(150); // 设置字体宽度为原来的 150%

9.字体大写转换 (capitalization)
设置字体的字母转换方式,通过 setCapitalization() 可指定不同的大写样式,如全部大写、小写字母等。

QFont::MixedCase:混合大小写(默认)
QFont::AllUppercase:全部大写
QFont::AllLowercase:全部小写
QFont::SmallCaps:小型大写字母

示例:

font.setCapitalization(QFont::AllUppercase);

10.设置字体样式策略 (StyleStrategy)
定义字体的渲染策略,比如抗锯齿、默认样式、强制替代字体等。
示例:

font.setStyleStrategy(QFont::PreferAntialias);

下面是一个简单的示例,展示了如何使用 QFont 设置字体,并用 QPainter 绘制文本:

QPainter painter(this);

    QFont font;
    font.setFamily("Times New Roman");
    font.setPointSize(14);
    font.setBold(true);
    font.setItalic(true);
    font.setUnderline(true);
    font.setLetterSpacing(QFont::AbsoluteSpacing, 2);
    font.setCapitalization(QFont::AllUppercase);

    painter.setFont(font);
    painter.drawText(10, 50, "Hello, QFont!");

    QWidget::paintEvent(event);

在这里插入图片描述

Qt—QPainter基本图形绘制详解 1、QPainter 类在小部件和其他绘制设备上执行低级绘制。2、QPainter 提供了高度优化的功能来完成大多数图形GUI程序所需的工作。它可以画从简单的线条到复杂的形状。它还可以绘制对齐的文本和像素图。QPainter 可以对继承 QPaintDevice 类的任何对象进行操作。3、QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系统的基础:QPainter 是用于执行绘图操作的类。QPaintDevice 表示可以使用 QPainter 在其上绘制的 阅读详情

相关推荐

Qt-QPainter的使用总结

QPainter是Qt框架中的一个类,主要用于在各种设备上进行2D图形绘制,如窗口、位图、打印设备等。它提供了一系列绘图函数,可以实现绘制点、线、曲线、形状、文本、图像以及复杂的绘画操作。QPainter 与 QPaintDevice 和 QPaintEngine 类一起构成了Qt绘制系统的基础:使用QPainter进行绘图的基本步骤如下:当你需要在自己定义的界面上面执行各种绘画操作时,使用这个类就行绘制,毕竟QT直接提供的Ui控件里面还是比较少的,如果你想实现自己的控件,可是重写里面的虚函数,进行绘制自己

qq_37464701的博客 1110

QPainter详解

QPainter详解

友善啊,朋友的博客 4万+

Qt 2D绘图之一:基本图形绘制和渐变填充

参考文章链接: Qt 2D绘图之一:基本图形绘制和渐变填充2D 绘图系统如下: 2D 绘图主要是 QPainter、QPaintDevice、QPaintEngine 三个类,主要类的作用(其关系见图示)在QPainter中提供了一些方便的函数来绘制常用的图形,而且还可以设置线条和边框的画笔以及进行填充的画刷。新建Qt Gui应用,项目名称为 myDrawing,基类选择QWidget,类名为Widget。建立完成后,在widget.h文件中声明重绘事件处理函数: 绘制基本图形 在widget.cpp文件

qq_37464701的博客 1176

QPainter:Qt图形渲染引擎

QPainter 是 Qt 的核心绘图类之一,提供了各种方法来画出各种图形和文本。QPainter 类通过与特定设备的 QPainterDevice 对象交互,将二维图形呈现到窗口之上。QPainter 可以与 QWidget 或其他显示设备(如 QImage 或 QPrinter)配合使用,因此您可以在屏幕上轻松地呈现复杂的几何图形和文本。QPainter 的高效性可能会产生混淆,尤其是对新手,但实际上 QPainter 使用了优化的算法,能够快速渲染大部分类型的图形和文本数据。

qq_25549309的博客 3000

QT:paintEvent、QPainter、QPaintDevice

在 Qt 编程中,paintEvent 是 QWidget 类中的一个非常重要的虚函数,用于处理绘图事件。当一个 QWidget 或其派生类的实例需要进行重绘操作时,Qt 会自动调用该控件的 paintEvent 函数。

qq_43441284的博客 1535

Qt中的QPainter绘图操作介绍

QPainter是Qt框架中的一个重要类,它提供了丰富的绘图功能,可以用于在QWidget及其派生类上进行绘图操作。通过QPainter,开发者可以绘制各种几何图形、文本、图像等元素,实现自定义的绘图效果。通过以上介绍,我们了解了QPainter的基本用法和一些常用的绘图操作。开发者可以根据具体需求,灵活运用QPainter的功能来实现自定义的绘图效果。在实际开发中,也可以通过继承QWidget或其他绘图设备的派生类,重写绘图事件函数,来实现更加复杂的绘图操作。Qt中的QPainter绘图操作介绍。

ByteProwl的博客 675

Qt5 C++ GUI 编程秘籍(一)

计算机软件市场的持续增长导致了一个竞争激烈和具有挑战性的时代。你的软件不仅需要功能强大且易于使用,还必须对用户具有吸引力和专业性。为了在市场上获得竞争优势,产品的外观和感觉至关重要,并且应该在生产阶段早期予以关注。在本书中,我们将教你如何使用 Qt5 开发平台创建功能强大、吸引人且用户友好的软件。第一章 外观和感觉定制,展示了如何使用 Qt Designer 和 Qt Quick Designer 设计程序的用户界面。第二章 状态和动画,解释了如何通过使用状态机框架和动画框架来为用户界面小部件添加动画效果。

龙哥盟 836

Qt中的事件处理与图形绘制技术

本文主要探讨了Qt框架中的事件处理和图形绘制技术。通过代码示例,讲解了如何使用QApplication::processEvents()保持用户界面的响应性,并在文件保存等长时间运行的操作中显示进度对话框。同时,介绍了Qt的2D图形引擎QPainter的使用方法,以及如何通过变换矩阵控制图形的绘制。

weixin_32747681的博客 547

QPainter实战:从基础绘图到高级图形处理

本文深入探讨了QPainter在Qt中的实际应用,从基础绘图到高级图形处理。通过详细的代码示例,介绍了如何使用QPainter绘制基本图形、实现抗锯齿效果、应用图像合成技术以及进行坐标变换和路径绘制。文章还分享了性能优化技巧,帮助开发者提升图形处理效率,适用于各种Qt图形界面开发场景。

onion的博客 771

Qt图形绘制源代码深入分析

Qt 是一个跨平台的 C++ 应用程序框架,用于开发具有图形用户界面(GUI)的应用程序。它提供了丰富的控件和工具集,能够帮助开发者快速实现应用程序的图形界面。QPainter 是 Qt 框架提供的一个类,它是一个非常强大的绘图工具,用于在窗口或图片上进行2D图形绘制。它是 Qt 的所有绘图类中最核心的一个,几乎所有的绘图操作都需要通过 QPainter 来完成。

weixin_28840811的博客 1105

单细胞分析R包monocle3服务器安装教程

由于centos7系统yum只能安装到低版本gdal,而monocle3依赖包需要 gdal>2 版本,从gdal官网下载2.4.4版本编译安装。monocle3的安装是通过cole-trapnell-lab安装的,该包挂在github上,需要通过github先安装leidenbase包,需要提前安装devtools包下载工具。接着利用BiocManager安装相应的依赖包,由于这些包的特殊性,所以不要切换到国内Bio_Mirror镜像,否则会找不到,如果一次不成功,缺啥补啥即可。运行 ldconfig。

qq_36608036的博客 1万+

Qt 之图形(QPainter 的基本绘图)

Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 - QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDevice、QWidget 和QPaintDevice 显示图形(线、形状、渐变等)、文本和图像。

青春不老,奋斗不止! 15万+

大模型部署之二--vllm+docker部署

本文介绍了在openEuler系统上快速本地部署Qwen3-8B、DeepSeek-R1、Qwen2.5deng 大模型的完整流程。通过modelscope管理模型,采用vllm+docker模式实现部署。主要步骤包括:1)安装conda环境;2)配置docker;3)下载模型;4)编写docker compose配置文件;5)启动服务。特别针对2卡4090服务器提供了参数配置建议,并给出常用命令和参考资料。文档还提示不同系统和平台可能存在差异,为开发者提供了本地部署大型语言模型的实用指南。

weixin_39279863的博客 1133

Qt之图形(QPainter的基本绘图)

简述 Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。 QPainter 用于执行绘图操作,其提供的 API 在 GUI 或 QImage、QOpenGLPaintDevice、QWidget 和...

weixin_34341229的博客 8541

保姆级教程:在mmdetection中手动计算并可视化P、R、F1值(附完整代码)

本文提供了一份详细的mmdetection教程,指导开发者如何手动计算并可视化精确率(P)、召回率(R)和F1值。通过完整的代码示例和清晰的步骤说明,帮助用户深入理解目标检测模型的性能评估方法,特别适合需要精细分析模型表现的计算机视觉研究人员和工程师。

weixin_29038303的博客 397

UE5深度图与Mask图渲染实战:从基础到高级应用

本文详细解析了在UE5中渲染深度图与Mask图的完整实战流程。从启用电影渲染队列、配置自定义深度模板通道等前期准备,到构建即用型深度图材质网络与精准物体Mask生成,并深入探讨了二者结合在NPR风格化、程序化雾气及AI工作流(如ComfyUI)中的高级应用,为影视、游戏后期与AI创作提供了高效的解决方案。

weixin_29001419的博客 348

2D 图形绘制与 QPainter

QPainter 提供了绘制向量图形、文本和图像到不同表面(如 QImage、QOpenGLPaintDevice、QWidget 和 QPrinter 等 QPaintDevice 实例)的 API。实际的绘制操作在 QPaintDevice 的 QPaintEngine 中进行。QPaintEngine 中最重要的两个实现是软件光栅化器和 OpenGL (ES) 2.0 后端。软件光栅化器是 Qt 的软件光栅化器,用于在 QImage 或 QWidget 上绘制时使用。

qq_32640443的博客 1288

【教培管家】小程序实战(五):体验课预约——从流量到转化的闭环

本节我们通过变量状态管理和数据联动,实现了孩子选择和日期选定。下一篇我们继续讲解预约页面,根据选择的日期来筛选排课,供用户进行预约。

低代码布道师的博客 1562

QT QPainter 绘图

Qt QPainter绘图基础。。。QPaintPath 绘图路线/顺序。。。Qt 中提供了强大的 2D 绘图系统,可以使用相同的 API 在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice 和 QPaintEngine 这三个类。

yishuihanq的博客 2652

以太网GMAC-RK3568

第 2 章和第 3 章中针对 RMII/RGMII 接口芯片和 USB 以太网两种类型芯片在 SDK 上的配置做详细的描述,第 4 章介绍以太网在 Android 上的相关调用接口。第 5 章提供常见问题的排查建议由于在 RK 系列的 SoC 中内置了以太网 MAC 控制器,所以只需要搭配一颗以太网 PHY 芯片,即可实现以太网卡功能按照规范,即使是不同厂家的 PHY,仍然有一部分寄存器的定义是通用的,只要配置了这些通用的寄存器,基本上 PHY 就可以正常工作代码位置在。

qq_24093081的博客 1942

《Python全栈系列教程》专栏介绍及文章汇总

《Python全栈系列教程》专栏介绍及文章汇总

孤寒者的博客 71万+

QT-QPainter绘制曲线等基本图形

Qt中绘制2D图形最核心的一个类是QPainter。类QPainter是在设备类QPaintDevice上绘制几何图形(包括直线、曲线、圆形、弧形、矩形等等),其中设备类QPaintDevice的子类又有QWidget、QImage、QPictrue、QPixmap、QOpenGLPaintDevice等,也即是说,我们可以继承这些类,通过重写QPaintEvent事件进行重绘,或者用事件过滤器捕获QPaintEvent事件信息进行响应重绘也行。 一、原理讲解 本文主要总结用类QPainter绘制直线、矩

u011555996的博客 8955

ArcGIS:景观指数和景观单元关联生成景观指数遥感图像

优快云@_养乐多_本文将记录,使用由 Fragstats V4.2 软件计算的景观指数和瓦片 tif 数据生成景观指数图像的操作步骤。本教程的操作均在ArcGIS上进行,最后生成一个研究区内指定景观单元大小的景观指数图像。结果如下所示,

养乐多的博客 4926

【Qt】2D绘图之绘制简单的图形

00. 目录 文章目录00. 目录01. 概述02. 开发环境03. 绘制图形04. 画笔和画刷05. 绘制弧线06. 附录 01. 概述 Qt中提供了强大的2D绘图系统,可以使用同一API实现在屏幕和绘图设备上进行绘制,它主要基于QPainter、QPaintDevice和QPaintEngine这三个类。其中QPainter用来执行绘图操作;QPaintDevice提供绘图设备,它是一个二维空间的抽象,可以使用QPainter在其上进行绘制;QPaintEngine提供了一些接口,可以用于QPainte

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 4759

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Qt—2D绘图—1基本图型绘制与填充

Qt中提供了强大的2D绘图系统,可以使用相同的API在屏幕和绘图设备上进行绘制,主要基于QPainter , QPaintDevice和 QPaintEngine这3个类。其中,QPainter用来执行绘图操作。QPaintDevice提供绘图设备,是一个二维空间的抽象,可以使用QPainter在其上进行绘制;是所有可以进行绘制的对象的基类,它的子类主要有QWidget ,QPixmap, QPicture,QImage,QPrinter和 QOpenGLPaintDevice等。 QPaintEngine

Half-up的博客 8178

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

QT核心模块源码解析:2D图形系统

1_1_2D图形系统简介1_1_2D图形系统简介2D图形系统是计算机图形学的基础,它涉及到图形和图像的生成、处理和显示。在QT框架中,2D图形系统提供了丰富的图形绘制功能,包括基本图形绘制、图像处理、文本渲染等。本章将介绍QT框架中的2D图形系统的基本概念和主要功能。基本概念在QT框架中,2D图形系统涉及到以下几个基本概念,(1)坐标系,QT框架使用的是设备坐标系(Device Coordinate System),也称为窗口坐标系。

QT性能优化QT原理源码QT界面美化 1780

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

上一篇: 初入VTK的世界
下一篇: Windows10系统安装MySQL数据库
TechNomad
博客等级 码龄2年 787粉丝 183原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值