控件样式参考
本参考文档描述了 Qt Widgets 控件如何使用样式。当您实现一个样式时,可参考此文档来了解需要绘制哪些元素以及控件会向您传递哪些信息;或者当您编写支持样式的控件或委托时,可参考此文档来绘制与 Qt Widgets 控件相同的元素。
本参考文档分为三个页面:
- 按钮和输入控件的样式设置:按压按钮、复选框和单选按钮、工具按钮、组合框、旋转框、滑块、滚动条和进度条。
- 容器和窗口的样式设置:选项卡控件、组框、分隔符、工具箱、工具栏、停靠控件、标题栏、大小控点和弹性条。
- 菜单和项目视图的样式设置:菜单、菜单栏、项目视图标题、树分支指示符以及项目视图项目。
每个控件的参考文档包含以下内容
- 元素树。控件绘制的样式元素,按绘制顺序排列。 嵌套元素由其上层元素在QCommonStyle 中绘制。在每个元素旁边,参考文档列出了QCommonStyle 在绘制该元素时所使用的子元素矩形、子控件以及像素度量。您自定义的样式可以采用不同的绘制结构;只有控件调用的元素是固定的。
- 一张屏幕截图。这是采用 Fusion 样式的控件,其中各元素的边界矩形均以轮廓线标出。颜色仅用于区分不同矩形。重叠的矩形会相互向内偏移一个像素进行绘制。
- 状态标志。除了 `QStyleOption::initFrom()` 设置的通用标志外,小部件在其样式选项中设置的 `QStyle::StateFlag ` 值。
- 样式选项成员。小部件的QStyleOption 子类的成员,以及小部件在其中存储的内容。
常见状态标志和成员在《样式如何绘制控件》中进行了说明。
参考文档中未提及的内容
小部件还会利用样式进行不属于绘制范畴的计算。它们通过sizeFromContents() 获取尺寸提示,通过pixelMetric() 获取边框宽度和边距,并通过subElementRect() 获取子元素的位置。 该参考文档列出了内容类型以及每个小部件查询的像素度量值,但并未描述内置样式是如何计算这些值的。样式如何进行这些计算完全取决于样式本身。Qt 并未强制规定具体结构。如有疑问,请查阅QCommonStyle 的实现代码。
另请参阅 《样式与支持样式的小部件》、《样式如何绘制小部件》、《QStyle 》以及《QStyleOption 》。
© 2026 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.