C++界面开发框架Qt 6.x入门级教程:Qt Widget- 样式和样式感知小部件(六)

样式(继承QStyle的类)代表小部件绘制并封装 GUI 的外观。 QStyle 类是一个抽象基类,它封装了 GUI 的外观。

调色板

每种样式都提供了一种颜色 – 即QBrush,用于绘制小部件的调色板。对于不同的小部件状态(QPalette::ColorGroup)有一组颜色:激活(窗口中具有键盘焦点的小部件)、非激活(用于其他窗口的小部件)和禁用(被禁用的小部件),可以通过查询State_Active 和 State_Enabled 状态标志来找到这些状态。每个集合都包含由 QPalette::ColorRole 枚举给出的某些颜色角色,角色描述了应该在哪些情况下使用颜色(例如,用于绘制小部件背景、文本或按钮)。

如何使用颜色角色取决于样式,例如如果样式使用渐变,可以使用调色板颜色并使用QColor::darker() 和 QColor::lighter()使其更暗或更亮来创建渐变。通常如果您需要调色板未提供的画笔,则应尝试从中派生它。

提供调色板的QPalette存储不同小部件状态和颜色角色的颜色,样式的调色板由standardPalette() 返回。在应用程序 (QApplication::setStyle()) 或小部件 (QWidget::setStyle()) 上设置新样式时,标准调色板不会自动安装,因此您必须自己设置调色板 (QApplication::setPalette() ) 或 (QWidget::setPalette())。

实现问题

实现样式时,需要考虑几个问题,我们将在此处提供有关实现的一些提示和建议。

在实现样式时,需要查看小部件的代码和基类及其源代码,这是因为小部件使用不同的样式,因为不同样式的虚函数中的实现会影响绘图的状态(例如,通过更改 QPainter 状态而不恢复它和绘制一些元素替代适当的像素度量和子元素)。

建议样式不要使用QStyle::sizeFromContents()函数改变小部件的建议大小,而是让 QCommonStyle 实现来处理它。 如果需要进行更改,则应尽量保持较小; 如果小部件的布局在各种样式中看起来差别很大,则应用程序开发可能会很困难。

Qt商用组件推荐
  • QtitanRibbon – Ribbon UI组件:是一款遵循Microsoft Ribbon UI Paradigm for Qt技术的Ribbon UI组件,QtitanRibbon致力于为Windows、Linux和Mac OS X提供功能完整的Ribbon组件。
  • QtitanChart – Qt类图表组件:是一个C ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
  • QtitanNavigation:QtitanNavigationDesignUI 组件是一组 GUI 控件,它实现了菜单、导航框、命令栏等导航界面,并让您以更少的滚动和点击次数有效地查看所有实体(工作区、 格或其他项目)。
  • QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!

Qt技术交流群:166830288      欢迎一起进群讨论

更多Qt产品教程、下载、正版授权资讯,请点击获取

标签:

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月3日
下一篇 2022年6月3日

相关推荐

发表回复

登录后才能评论