彩票走势图

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

翻译|使用教程|编辑:龚雪|2022-06-27 11:39:51.900|阅读 89 次

概述:本文继续为大家介绍Qt Widget中的样式和样式感知小部件,欢迎大家下载相关组件体验!

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

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

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

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

QStyle 函数

类定义了三个用于绘制图元、控件和复杂元素的函数: (), ()和(),这些函数采用以下参数:

  • 要绘制的元素的枚举值。
  • 一个 ,其中包含绘制元素所需的信息。
  • 用于绘制元素的。
  • 指向的指针,通常是绘制元素的小部件。

并非所有小部件都向自己发送指针,如果发送给函数的样式选项不包含您需要的信息,应该检查小部件实现来查看是否发送指向自身的指针。

QStyle 类还提供了绘制元素时使用的辅助函数。()函数在指定的矩形内绘制文本,将作为参数;()函数有助于在指定的边界矩形内对齐像素图。

其他 QStyle 函数对绘图的函数进行各种计算,如果小部件自己绘制多个样式元素,它们也使用这些函数来计算大小提示和边界矩形。 与绘制元素的函数一样,辅助函数通常采用相同的参数。

  • ()  函数采用枚举值并计算子元素的边界矩形,样式使用这个函数来知道在哪里绘制元素的不同部分。 这主要是为了重用; 如果创建新样式,则可以使用与超类相同的子元素位置。
  • ()函数用于计算复杂控件中子控件的边界矩形。 实现新样式时,您重新实现 subControlRect() 并计算与超类不同的矩形。
  • () 函数返回一个像素度量,它是以屏幕像素为单位给出的与样式相关的大小,它采用 PixelMetric 枚举的值并返回正确的测量值。请注意,像素度量不一定必须是静态测量,但可以使用例如样式选项进行计算。
  • () 函数返回鼠标指针在复杂控件上的子控件。 通常,这只是简单地使用()来获取子控件的边界矩形,然后查看哪个矩形包含光标的位置。

QStyle 也有函数() 和(),所有小部件在显示之前被发送到 Polish() 函数,在它们被隐藏时被发送到 unpolish()。您可以使用这些函数来设置小部件的属性或执行您的样式所需的其他工作,例如,如果您需要知道鼠标何时悬停在小部件上,则需要设置 小部件属性,State_MouseOver 状态标志将在小部件的样式选项中设置。

QStyle 有一些静态辅助函数,可以完成一些常见和困难的任务。 他们可以根据滑块的值计算滑块句柄的位置,并在考虑反向布局的情况下变换矩形并绘制文本。

重新实现 QStyle 虚函数的常用方法是对不同于超类的元素进行处理; 对于所有其他元素,您可以简单地使用超类实现。

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      欢迎一起进群讨论


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@capbkgr.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP