C++界面开发框架Qt入门指南 - 样式及样式感知小部件(六)_C/C++_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > C/C++ > C++界面开发框架Qt入门指南 - 样式及样式感知小部件(六)

C++界面开发框架Qt入门指南 - 样式及样式感知小部件(六)

 2022/7/7 15:29:48  AABBbaby  程序员俱乐部  我要评论(0)
  • 摘要:样式(继承QStyle的类)代表小部件绘制并封装GUI的外观。QStyle类是一个抽象基类,它封装了GUI的外观。Qt的内置小部件使用它来执行几乎所有的绘图,确保它们看起来与等效的原生小部件完全一样。Qt带有一系列内置样式,某些样式仅在特定平台上可用。自定义样式可作为插件使用,或者通过使用QStyleFactory::create()创建特定样式类的实例并使用QApplication::setStyle()设置它。点击获取Qt组件下载调色板每种样式都提供了一种颜色-即QBrush
  • 标签:c++ 开发

样式(继承QStyle的类)代表小部件绘制并封装 GUI 的外观。 QStyle 类是一个抽象基类,它封装了 GUI 的外观。?Qt?的内置小部件使用它来执行几乎所有的绘图,确保它们看起来与等效的原生小部件完全一样。

Qt带有一系列内置样式,某些样式仅在特定平台上可用。自定义样式可作为插件使用,或者通过使用?QStyleFactory::create()创建特定样式类的实例并使用QApplication::setStyle()设置它。

?

点击获取Qt组件下载
调色板

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

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

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

不建议对颜色进行硬编码,因为应用程序和单个小部件可以设置自己的调色板,也可以使用其样式的调色板进行绘制。请注意,Qt 的小部件都没有设置自己的调色板,Java 风格确实对某些颜色进行了硬编码,但仅作为作者的决定; 不建议这样做。 当然,这并不意味着该样式在任何调色板中都应该看起来不错。

实现问题

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

在实现样式时,需要查看小部件的代码和基类及其源代码,这是因为小部件使用不同的样式,因为不同样式的虚函数中的实现会影响绘图的状态(例如,通过更改 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 ++库,代表一组控件,这些控件使您可以快速地为应用程序提供漂亮而丰富的图表。
  • QtitanDataGrid?- Qt网格组件:提供了一套完整的标准 QTableView 函数和传统组件无法实现的独特功能。使您能够将不同来源的各类数据加载到一个快速、灵活且功能强大的可编辑网格中,支持排序、分组、报告、创建带状列、拖放按钮和许多其他方便的功能。
  • QtitanNavigation:QtitanNavigationDesignUI 组件是一组 GUI 控件,它实现了菜单、导航框、命令栏等导航界面,并让您以更少的滚动和点击次数有效地查看所有实体(工作区、网格或其他项目)。
  • QtitanDocking:允许您像 Visual Studio 一样为您的伟大应用程序配备可停靠面板和可停靠工具栏。黑色、白色、蓝色调色板完全支持 Visual Studio 2019 主题!

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

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

发表评论
用户名: 匿名