QStyle简介

前言

QStyle类的内容非常庞大,本文旨在对各部分一句话概括,方便建立整体认知。

更详细全面的内容另请参见 QStyle文档。

一、QStyle成员

1. Public类型

enum	ComplexControl { CC_SpinBox, CC_ComboBox, CC_ScrollBar, CC_Slider, CC_ToolButton,, CC_CustomBase }
enum	ContentsType { CT_CheckBox, CT_ComboBox, CT_HeaderSection, CT_LineEdit, CT_Menu,, CT_MdiControls }
enum	ControlElement { CE_PushButton, CE_PushButtonBevel, CE_PushButtonLabel, CE_DockWidgetTitle, CE_Splitter,, CE_ShapedFrame }
enum	PixelMetric { PM_ButtonMargin, PM_DockWidgetTitleBarButtonMargin, PM_ButtonDefaultIndicator, PM_MenuButtonIndicator, PM_ButtonShiftHorizontal,, PM_DefaultLayoutSpacing }
enum	PrimitiveElement { PE_FrameStatusBar, PE_PanelButtonCommand, PE_FrameDefaultButton, PE_PanelButtonBevel, PE_PanelButtonTool,, PE_PanelMenu }
enum	RequestSoftwareInputPanel { RSIP_OnMouseClickAndAlreadyFocused, RSIP_OnMouseClick }
enum	StandardPixmap { SP_TitleBarMinButton, SP_TitleBarMenuButton, SP_TitleBarMaxButton, SP_TitleBarCloseButton, SP_TitleBarNormalButton,, SP_CustomBase }
flags	State // typedef QFlags<StateFlag> State;
enum	StateFlag { State_None, State_Active, State_AutoRaise, State_Children, State_DownArrow,, State_Small }
enum	StyleHint { SH_EtchDisabledText, SH_DitherDisabledText, SH_ScrollBar_ContextMenu, SH_ScrollBar_MiddleClickAbsolutePosition, SH_ScrollBar_LeftClickAbsolutePosition,, SH_SpinBox_StepModifier }
enum	SubControl { SC_None, SC_ScrollBarAddLine, SC_ScrollBarSubLine, SC_ScrollBarAddPage, SC_ScrollBarSubPage,, SC_All }
flags	SubControls
enum	SubElement { SE_PushButtonContents, SE_PushButtonFocusRect, SE_PushButtonLayoutItem, SE_PushButtonBevel, SE_CheckBoxIndicator,, SE_ToolBarHandle }

其中大部分是枚举类型,有两个例外:

  1. StateQFlags<StateFlag>的别名。 State存储了StateFlag枚举量的或运算(OR)集合。
  2. SubControlsQFlags<SubControl>的别名,存储了SubControl的或运算(OR)集合。
枚举类型值示例作用
enum ConplexControlCC_SpinBox描述了可用的复杂控件。
复杂控件会因用户点击的位置或按下的键而表现不同行为
enum ContentsTypeCT_CheckBox描述了可用的内容类型。
这些内容类型用于计算各种小部件的内容大小
enum ControlElementCE_PushButton表示一个控件元素。
控件元素是小部件的一部分,用于执行某些操作或向用户显示信息。
enum PixelMetricPM_ButtonMargin描述了各种可用的像素度量。
像素度量是一种与样式相关的尺寸,由单个像素值表示。
enum PrimitiveElementPE_FrameStatusBar描述了原始(基本)元素。
原始元素是常见的GUI元素,例如复选框指示器或按钮斜角。
enum RequestSoftwareInputPanelRSIP_OnMouseClick描述了在什么情况下具有输入功能的小部件会请求软件输入面板。
enum StandardPixmapSP_TitleBarMinButton描述了可用的标准像素图。
标准像素图是可以遵循某些现有GUI样式或指南的像素图。
flags State——————————enum StateFlag标志位的集合。
enum StateFlagState_Active描述了绘制原始元素(Primitive Elements)时使用的flags。
注意,并不是所有原始元素都会使用所有这些标志,并且这些标志对不同的项目可能有不同的含义。
enum StyleHintSH_ScrollBar_ContextMenu描述了可用的样式提示。
样式提示是一种整体外观的提示。
flags SubControls——————————enum SubControl的标志位集合。
enum SubControlSC_ScrollBarAddLine描述了可用的子控件枚举类型。
子控件是复合控件(enum QStyle::ComplexControl)中的控件元素。
enum SubElementSE_PushButtonContents表示了一个小部件的子区域。
样式实现使用这些区域来绘制小部件的不同部分。

2. Public函数

	QStyle()
virtual	~QStyle()
int	combinedLayoutSpacing(QSizePolicy::ControlTypes controls1, QSizePolicy::ControlTypes controls2, Qt::Orientation orientation, QStyleOption *option = nullptr, QWidget *widget = nullptr) const
virtual void	drawComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
virtual void	drawControl(QStyle::ControlElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
virtual void	drawItemPixmap(QPainter *painter, const QRect &rectangle, int alignment, const QPixmap &pixmap) const
virtual void	drawItemText(QPainter *painter, const QRect &rectangle, int alignment, const QPalette &palette, bool enabled, const QString &text, QPalette::ColorRole textRole = QPalette::NoRole) const
virtual void	drawPrimitive(QStyle::PrimitiveElement element, const QStyleOption *option, QPainter *painter, const QWidget *widget = nullptr) const = 0
virtual QPixmap	generatedIconPixmap(QIcon::Mode iconMode, const QPixmap &pixmap, const QStyleOption *option) const = 0
virtual QStyle::SubControl	hitTestComplexControl(QStyle::ComplexControl control, const QStyleOptionComplex *option, const QPoint &position, const QWidget *widget = nullptr) const = 0
virtual QRect	itemPixmapRect(const QRect &rectangle, int alignment, const QPixmap &pixmap) const
virtual QRect	itemTextRect(const QFontMetrics &metrics, const QRect &rectangle, int alignment, bool enabled, const QString &text) const
virtual int	layoutSpacing(QSizePolicy::ControlType control1, QSizePolicy::ControlType control2, Qt::Orientation orientation, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0
virtual int	pixelMetric(QStyle::PixelMetric metric, const QStyleOption *option = nullptr, const QWidget *widget = nullptr) const = 0
virtual void	polish(QWidget *widget)
virtual void	polish(QApplication *application)
virtual void	polish(QPalette &palette)
const QStyle *	proxy() const
virtual QSize	sizeFromContents(QStyle::ContentsType type, const QStyleOption *option, const QSize &contentsSize, const QWidget *widget = nullptr) const = 0
virtual QIcon	standardIcon(QStyle::StandardPixmap standardIcon, const QStyleOption *option = 0, const QWidget *widget = 0) const = 0
virtual QPalette	standardPalette() const
virtual int	styleHint(QStyle::StyleHint hint, const QStyleOption *option = nullptr, const QWidget *widget = nullptr, QStyleHintReturn *returnData = nullptr) const = 0
virtual QRect	subControlRect(QStyle::ComplexControl control, const QStyleOptionComplex *option, QStyle::SubControl subControl, const QWidget *widget = nullptr) const = 0
virtual QRect	subElementRect(QStyle::SubElement element, const QStyleOption *option, const QWidget *widget = nullptr) const = 0
virtual void	unpolish(QWidget *widget)
virtual void	unpolish(QApplication *application)
函数名作用
combinedLayoutSpacing返回在布局中应该用于 controls1 和 controls2 之间的间距。
drawComplexControl使用所提供的painter和指定的option样式选项绘制给定的控件。
drawControl使用所提供的painter和指定的option样式选项绘制给定的元素。
drawItemPixmap使用所提供的painter,根据指定的alignment,在指定的rectangle中绘制给定的pixmap。
drawItemText在指定的矩形内使用提供的painter和调色板(palette)绘制给定的文本。
drawPrimitive使用提供的painter和指定的样式选项(option)绘制给定的基本元素(primitive element)
generatedIconPixmap返回给定图像(pixmap)的副本,该副本经过样式化以符合指定的图标模式(iconMode),并考虑由option指定的调色板(palette)。
hitTestComplexControl返回给定复杂控件(complex control)中指定位置(position)的子控件,使用由option指定的样式选项。
itemPixmapRect返回在给定矩形内根据定义的对齐方式绘制指定图像(pixmap)的矩形区域。
itemTextRect返回在给定矩形内根据指定的字体度量(font metrics)和对齐方式绘制提供的文本(text)的区域。
layoutSpacing返回在布局中控制项control1和control2之间应使用的间距。
pixelMetric返回给定像素度量(pixel metric)的值。
polish初始化给定窗口部件(widget)的外观。
proxy返回该样式的当前代理
sizeFromContents返回由指定的option和type描述的元素的大小,基于提供的contentsSize。
standardIcon返回给定标准图标(standardIcon)的图标。
standardPalette返回样式的标准调色板。
styleHint返回一个整数,表示由提供的样式选项描述的给定窗口部件的指定样式提示(style hint)。
subControlRect返回包含给定复杂控件(complex control)的指定子控件(subControl)的矩形(使用由option指定的样式)。
subElementRect返回给定元素(element)的子区域,如提供的样式选项(style option)中所描述。
unpolish取消初始化给定窗口部件/程序的外观。

3. 静态成员函数

QRect	alignedRect(Qt::LayoutDirection direction, Qt::Alignment alignment, const QSize &size, const QRect &rectangle)
int	sliderPositionFromValue(int min, int max, int logicalValue, int span, bool upsideDown = false)
int	sliderValueFromPosition(int min, int max, int position, int span, bool upsideDown = false)
Qt::Alignment	visualAlignment(Qt::LayoutDirection direction, Qt::Alignment alignment)
QPoint	visualPos(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QPoint &logicalPosition)
QRect	visualRect(Qt::LayoutDirection direction, const QRect &boundingRectangle, const QRect &logicalRectangle)
函数名作用
alignedRect返回一个指定大小的矩形,大小由size指定。
该矩形会根据指定的对齐方式alignment和方向direction与给定的矩形rectangle对齐。
sliderPositionFromValue将给定的逻辑值(logicalValue)转换为像素位置
min参数映射到0,max参数映射到span,其他值在两者之间均匀分布。
此函数可以处理整个整数范围而不会溢出,前提是span小于4096。
默认情况下,此函数假定最大值位于水平项的右侧和垂直项的底部。将upsideDown参数设置为true以反转此行为。
sliderValueFromPosition将给定的像素位置转换为逻辑值。
0 映射到 min 参数,span 映射到 max,其他值则在两者之间均匀分布。
此函数可以处理整个整数范围而不会发生溢出。
默认情况下,此函数假设最大值位于水平项目的右侧和垂直项目的底部。将 upsideDown 参数设置为 true 可逆转此行为。
visualAlignment根据布局方向,将不带Qt::AlignAbsolute的Qt::AlignLeft或Qt::AlignRight对齐方式转换为带Qt::AlignAbsolute的Qt::AlignLeft或Qt::AlignRight对齐方式。
其他对齐标志将保持不变。如果未指定水平对齐方式,该函数将返回给定布局方向的默认对齐方式。
visualPos根据指定方向(direction),返回将给定的逻辑位置(logicalPosition)转换为屏幕坐标后的结果。
转换时使用boundingRectangle。
visualRect根据指定方向(direction),返回将给定的逻辑矩形(logicalRectangle)转换为屏幕坐标后的结果。
转换时使用boundingRectangle。
提供此函数是为了支持从右到左的桌面,通常在实现subControlRect()函数时使用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/438114.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录一次学习--委派攻击学习

目录 为什么要使用委派 什么账号可以使用委派 非约束性委派 这里有一张图 利用 流程 约束性委派 这里有一张图 如何利用 条件 具体流程 为什么要使用委派 这个是因为可能A服务需要B服务的支持&#xff0c;但是A服务的权限不可以使用B服务。然后这时就可以让域用户将…

OpenStack Yoga版安装笔记(十四)启动一个实例

1、官方文档 OpenStack Installation Guidehttps://docs.openstack.org/install-guide/ 本次安装是在Ubuntu 22.04上进行&#xff0c;基本按照OpenStack Installation Guide顺序执行&#xff0c;主要内容包括&#xff1a; 环境安装 &#xff08;已完成&#xff09;OpenStack…

OpenCV计算机视觉库

计算机视觉和图像处理 Tensorflow入门深度神经网络图像分类目标检测图像分割OpenCVPytorchNLP自然语言处理 OpenCV 一、OpenCV简介1.1 简介1.2 OpenCV部署1.3 OpenCV模块 二、OpenCV基本操作2.1 图像的基本操作2.1.1 图像的IO操作2.1.2 绘制几何图像2.1.3 获取并修改图像的像素…

无人机电力巡检:点亮电力巡检新视野!

一、无人机电力巡查的优势 提高巡检效率&#xff1a;无人机可以搭载高清摄像头、红外热像仪等先进设备&#xff0c;实时拍摄和传输图像&#xff0c;帮助巡检人员快速发现潜在问题&#xff0c;如电线破损、绝缘子污损、设备过热等&#xff0c;从而大大缩短了巡检周期。 降低人…

python-斐波那契词序列/最大回文乘积/求最大最小k个元素

一:斐波那契词序列题目描述 编写一个程序&#xff0c;生成斐波那契词序列的前n个元素。 斐波那契词序列是一个词序列&#xff0c;其中每个词是通过连接前两个词形成的。 它以斐波那契序列命名&#xff0c;因为它是以类似的方式创建的&#xff0c;但是我们不是加数字&#xff0c…

《OpenCV》—— 指纹验证

用两张指纹图片中的其中一张对其验证 完整代码 import cv2def cv_show(name, img):cv2.imshow(name, img)cv2.waitKey(0)def verification(src, model):sift cv2.SIFT_create()kp1, des1 sift.detectAndCompute(src, None)kp2, des2 sift.detectAndCompute(model, None)fl…

以太网交换安全:MAC地址表安全

一、MAC地址表安全 MAC地址表安全是网络安全中的一个重要方面&#xff0c;它涉及到网络设备的MAC地址表的管理和保护。以下是对MAC地址表安全的详细介绍&#xff1a; &#xff08;1&#xff09;基本概念 定义&#xff1a;MAC地址表是网络设备&#xff08;如交换机&#xff0…

【Linux进程间通信】Linux匿名管道详解:构建进程间通信的隐形桥梁

&#x1f4dd;个人主页&#x1f339;&#xff1a;Eternity._ ⏩收录专栏⏪&#xff1a;Linux “ 登神长阶 ” &#x1f339;&#x1f339;期待您的关注 &#x1f339;&#x1f339; ❀Linux进程间通信 &#x1f4d2;1. 进程间通信介绍&#x1f4da;2. 什么是管道&#x1f4dc;3…

unity 默认渲染管线材质球的材质通道,材质球的材质通道

标准渲染管线——材质球的材质通道 文档&#xff0c;与内容无关&#xff0c;是介绍材质球的属性的。 https://docs.unity3d.com/2022.1/Documentation/Manual/StandardShaderMaterialParameters.html游戏资源中常见的贴图类型 https://zhuanlan.zhihu.com/p/260973533 十大贴图…

最新版ChatGPT对话系统源码 Chat Nio系统源码

介绍&#xff1a; 最新版ChatGPT对话系统源码 Chat Nio系统源码 支持 Vision 模型, 同时支持 直接上传图片 和 输入图片直链或 Base64 图片 功能 (如 GPT-4 Vision Preview, Gemini Pro Vision 等模型) 支持 DALL-E 模型绘图 支持 Midjourney / Niji 模型的 Imagine / Upsc…

OpenSource - 开源WAF_SamWaf

文章目录 PreSafeLine VS SamWaf开发初衷软件介绍架构界面主要功能 使用说明下载最新版本快速启动WindowsLinuxDocker 启动访问升级指南自动升级手动升级 在线文档 代码相关代码托管介绍和编译已测试支持的平台测试效果 安全策略问题反馈许可证书贡献代码 Pre Nginx - 集成Mod…

单调队列应用介绍

单调队列应用介绍 定义应用场景实现模板具体示例滑动窗口最大值问题描述问题分析代码实现带限制的子序列和问题描述问题分析代码实现跳跃游戏问题描述问题分析代码实现定义 队列(Queue)是另一种操作受限的线性表,只允许元素从队列的一端进,另一端出,具有先进先出(FIFO)的特…

关于HTML 案例_个人简历展示01

案例效果展示 代码 <!DOCTYPE html> <lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>个人简历信息</title> </he…

MySQL 中的 LAST_INSERT_ID()函数详解

在 MySQL 数据库中&#xff0c;LAST_INSERT_ID()是一个非常有用的函数。它可以帮助我们获取最近一次插入操作所生成的自增 ID 值。本文将详细解释 MySQL 中的LAST_INSERT_ID()函数及其用途。 一、函数介绍 LAST_INSERT_ID()是 MySQL 中的一个内置函数&#xff0c;它返回最近一…

通过栈实现字符串中查找是否有指定字符串的存在

题目示例&#xff1a; 分析 由与没有给出字符串的长度&#xff0c;所以只能通过getline一次性处理&#xff0c;而在输入后恰好能倒序处理字符串&#xff0c;以标点符号为分界点&#xff0c;将数字当成字符放到栈里&#xff0c;遇到下一个标点符号时执行查找操作&#xff0c;…

关于Mybatis框架操作时注意的细节,常见的错误!(博主亲生体会的细节!)

目录 1.在对DB进行CRUD时&#xff0c;除了查&#xff0c;其余的操作都要进行事务的提交否则不成功。 2.用sqlSession原生方法时&#xff0c;第一个参数方法名&#xff0c;是xml文件中定义的id名&#xff0c;底层找的是你这个接口所定义的方法名。 3.以包为单位引入映射文件 …

Vue项目开发注意事项

事项一&#xff1a;项目代码放在本地怎么运行起来 1、首先确定项目对应的node和npm版本 node下载地址 Index of /dist/https://nodejs.org/dist/ node 与 npm版本对应关系 Node.js — Node.js Releases 2、node卸载的时候&#xff0c;会自动把对应的npm卸载掉 情况1&…

无环SLAM系统集成后端回环检测模块(loop):SC-A-LOAM以及FAST_LIO_SLAM

最近在研究SLAM目标检测相关知识&#xff0c;看到一篇论文&#xff0c;集成了SC-A-LOAM作为后端回环检测模块&#xff0c;在学习了论文相关内容后决定看一下代码知识&#xff0c;随后将其移植&#xff0c;学习过程中发现我找的论文已经集成了回环检测模块&#xff0c;但是我的另…

【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化

【重学 MySQL】四十九、阿里 MySQL 命名规范及 MySQL8 DDL 的原子化 阿里 MySQL 命名规范MySQL8 DDL的原子化 阿里 MySQL 命名规范 【强制】表名、字段名必须使用小写字母或数字&#xff0c;禁止出现数字开头&#xff0c;禁止两个下划线中间只出现数字。数据库字段名的修改代价…

Java 计算器项目

更多有趣请关注公众号 计算器项目 代码仓库&#xff1a;https://gitee.com/wengxiulin/vs_code 项目图片 项目简介 这是一个用 Java 编写的简单计算器应用程序&#xff0c;具有基本的数学运算功能。该计算器支持加、减、乘、除等运算&#xff0c;并提供用户友好的图形界面…