绘制和填充

绘图

QPainter 绘图程序提供了高度优化的函数,可完成图形用户界面程序所需的大部分绘图工作。从简单的图形基元(由 , , , 和 类表示)到复杂的图形(如矢量路径),它都能绘制。在 Qt XML 中,矢量路径由 类表示。 为绘画操作提供了一个容器,使图形形状得以构建和重复使用。QPoint QLine QRect QRegion QPolygon QPainterPath QPainterPath

QPainterPath

绘制路径是一个由线条和曲线组成的对象。例如,矩形由线条组成,椭圆由曲线组成。

与普通绘图操作相比,绘制路径的主要优点是只需创建一次复杂形状,然后只需调用QPainter::drawPath() 函数就能多次绘制。

QPainterPath 对象可用于填充、勾勒和剪切。要为给定的绘制路径生成可填充的轮廓,请使用QPainterPathStroker 类。

使用QPen 类绘制线条和轮廓。笔的定义包括样式(即线条类型)、宽度、笔刷、端点绘制方式(cap-style)以及两条连接线之间的连接绘制方式(join-style)。钢笔的笔刷是一个QBrush 对象,用于填充钢笔生成的笔画,即QBrush 类定义的填充模式。

QPainter 画笔还可以绘制对齐的文本和像素图。

绘制文本时,字体由QFont 类指定。Qt 将使用具有指定属性的字体,如果没有匹配的字体,Qt 将使用最匹配的已安装字体。实际使用的字体的属性可通过QFontInfo 类获取。此外,QFontMetrics 类提供了字体测量值,而QFontDatabase 类则提供了底层窗口系统中可用字体的信息。

通常情况下,QPainter 在 "自然 "坐标系下绘图,但它可以使用QTransform 类执行视图和世界变换。如需了解更多信息,请参阅 "坐标系",其中还介绍了渲染过程,即逻辑表示和渲染像素之间的关系,以及反锯齿绘制的优点。

抗锯齿绘制

绘制时,像素渲染由QPainter::Antialiasing 渲染提示控制。QPainter::RenderHint 枚举用于为QPainter 指定标志,任何给定的引擎都可能遵守或不遵守这些标志。

QPainter::Antialiasing 值表示引擎应尽可能对基元的边缘进行反锯齿处理,即通过使用不同的颜色强度来平滑边缘。

填充

填充图形使用QBrush 类。笔刷由其颜色和样式(即填充模式)定义。

Qt 中的任何颜色都由QColor 类表示,该类支持 RGB、HSV 和 CMYK 颜色模型。QColor 还支持 alpha 混合勾勒和填充(指定透明度效果),而且该类与平台和设备无关(颜色通过QColormap 类映射到硬件)。更多信息,请参阅QColor 类文档。

Qt::BrushStyle 枚举描述了可用的填充模式。其中包括从统一颜色到非常稀疏的基本图案、各种线条组合、渐变填充和纹理。Qt 提供了QGradient 类来定义自定义渐变填充,而纹理图案则使用QPixmap 类来指定。

QGradient

QGradient 类与QBrush 结合使用,用于指定渐变填充。

Qt 目前支持三种类型的渐变填充:线性渐变在起点和终点之间插值;径向渐变在焦点和其周围圆上的终点之间插值;锥形渐变围绕中心点插值。

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.