样式

Qt 内置小部件使用 QStyle 类来进行几乎所有绘图。 QStyle 是一个抽象基类,封装了 GUI 的外观和感觉,并且可以用来使小部件看起来与等效的原生小部件相同,或者给小部件提供自定义的外观。

Qt 提供一组 QStyle 子类来模拟 Qt 支持的不同平台的原生外观(QWindowsStyle,QMacStyle 等)。这些样式内置在 Qt GUI 模块中,其他样式可以通过 Qt 的插件机制实现。

大多数用于绘制样式元素的函数接收四个参数

  • 一个枚举值,指定要绘制哪个图形元素
  • 一个指定如何和在哪里渲染该元素的 QStyleOption 对象
  • 一个用于绘制元素的 QPainter 对象
  • 一个表示绘制操作的 QWidget 对象(可选)

样式从 QStyleOption 类获取它渲染图形元素所需的所有信息。小部件作为最后一个参数传递,以防样式需要它来完成特殊效果(例如 macOS 上的动画默认按钮),但这不是强制的。实际上,QStyle 可以用于在任意绘图设备(不仅仅是小部件)上绘制,在这种情况下,小部件参数是一个空指针。

绘图系统还提供了继承自 QPainterQStylePainter 类。 QStylePainter 是一个方便类,用于在控件内部绘制 QStyle 元素,并通过在 QStyle 的 API 上实现一系列高级绘图函数扩展了 QPainter。使用 QStylePainter 的优点是参数列表大大缩短。

QIcon

QIcon 类提供不同模式和状态的可缩放图标。

QIcon 可以生成反映图标状态、模式和尺寸的位图。这些位图由提供给图标的位图集生成,并由 Qt 小部件用来显示代表特定操作的图标。

一个 QIcon 对象的渲染由 QIconEngine 类处理。每个图标都有一个相应的图标引擎,负责以请求的大小、模式和状态绘制图标。

有关小部件样式和外观的更多信息,请参阅样式和知道样式的控件

© 2024 Qt公司有限公司。本文件中包含的文档贡献归相应所有者所有。提供的文档根据自由软件基金会发布的GNU自由文档许可证第1.3版条款许可。