绘图和填充
绘图
QPainter 提供高度优化的函数来执行大多数 GUI 程序所需的绘图工作。它可以绘制从简单的图形原语(由 QPoint、QLine、QRect、QRegion 和 QPolygon 类表示)到复杂形状如矢量路径的任何内容。在 Qt 中,矢量路径由 QPainterPath 类表示。 QPainterPath 提供了绘画操作的容器,允许图形形状被构建和重用。
QPainterPath 绘图路径是由线和曲线组成的对象。例如,矩形由线条组成,而椭圆由曲线组成。 与常规绘图操作相比,绘图路径的主要优势是复杂形状只需要创建一次;然后可以通过调用 QPainter::drawPath() 函数多次绘制。 QPainterPath 对象可用于填充、轮廓和裁剪。要生成给定绘图路径的可填充轮廓,请使用 QPainterPathStroker 类。 |
线和轮廓使用 QPen 类绘制。笔的定义由其样式(即其线型)、宽度、画笔以及端点绘制方式(帽样式)以及两根连接线之间的连接方式(连接样式)决定。笔的画笔是一个 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类指定。
© 2024 Qt公司。在此处包含的文档贡献是各自所有者的版权。提供的文档受GNU自由文档许可证版本1.3的条款约束,由自由软件基金会发布。Qt及其相关标志是芬兰的Qt公司和/或其他国家的商标。所有其他商标均为各自所有者的财产。