QT(9)-QStyleOption及其子类
1 QStyleOption
QStyleOption及其子类包含QStyle函数绘制图形元素所需的所有信息。
出于性能考虑,成员函数很少,对成员变量的访问是直接的(即使用。或者->运算符)。这种低级的感觉使结构易于使用,并强调它们只是样式函数使用的参数。
QStyle函数的调用者通常在堆栈上创建QStyleOption对象。这与Qt对QString、QPalette和QColor等类型的隐式共享的广泛使用相结合,确保了没有不必要的内存分配。
1.1 函数
1.1.1 initFrom
void QStyleOption::initFrom(const QWidget *widget)
"initFrom"是QStyleOption类中的一个成员函数,用于从给定的QWidget对象初始化QStyleOption对象的成员变量。它可以使开发人员在没有手动初始化QStyleOption对象的成员变量的情况下从QWidget对象获取样式信息。通过这种方式,开发人员可以快速和简便地对QWidget对象进行样式定制,而无需手动设置每个成员变量的值。
1.2 成员变量
1.2.1 Qt::LayoutDirection direction
"direction"是QStyleOption类中的一个成员变量,用于存储布局方向信息。它是Qt命名空间中的Qt::LayoutDirection枚举类型,表示用户界面中的文本和其他元素的布局方向。Qt::LayoutDirection枚举类型有两个值:Qt::LeftToRight和Qt::RightToLeft,分别表示从左到右和从右到左的布局方向。使用方向变量,开发人员可以轻松地定制项目的布局方向,以适应不同语言和区域的用户需求。
1.2.2 QFontMetrics fontMetrics
"fontMetrics"是QStyleOption类中的一个成员变量,用于存储字体度量信息。它是QFontMetrics类的实例,提供了有关字体的详细信息,例如字体大小、行间距、字符宽度等。通过使用字体度量信息,开发人员可以根据当前字体的属性计算出文本的大小和布局,并在必要时对其进行调整以适应用户界面的布局要求。
1.2.3 QPalette palette
"palette"是QStyleOption类中的一个成员变量,用于存储调色板信息。它是QPalette类的实例,存储了关于绘图项目的颜色信息,例如前景色、背景色、边框颜色等。通过使用调色板信息,开发人员可以控制绘图项目的外观和颜色,以符合用户的需求和喜好。
1.2.4 QRect rect
"rect"是QStyleOption类中的一个成员变量,用于存储矩形信息。它是QRect类的实例,表示一个矩形区域,存储了该矩形的位置和大小信息。通过使用矩形信息,开发人员可以控制绘图项目的大小和位置,以适应用户界面的布局要求。
1.2.5 QStyle::State state
"state"是QStyleOption类中的一个成员变量,用于存储状态信息。它是Qt命名空间中的QStyle::State枚举类型,表示绘图项目的当前状态。QStyle::State枚举类型包含了许多常用的状态标志,例如是否处于活动状态、是否选中、是否有边框等。通过使用状态信息,开发人员可以根据绘图项目的当前状态调整其外观,以提供用户更好的体验。
1.2.6 QObject * styleObject
"styleObject"是QStyleOption类中的一个成员变量,用于存储指向Qt样式对象的指针。它是QObject类的指针,指向Qt样式对象,该对象实现了Qt的样式系统。通过使用样式对象,开发人员可以在不修改代码的情况下改变整个应用程序的外观,提供更好的用户体验。
1.2.7 int type
"type"是一个整数类型,用于指示QStyleOption的类型。它是一个枚举类型,用于区分不同类型的QStyleOption对象。
1.2.8 int version
"version"是一个整数类型,用于表示QStyleOption的版本。这是一个可选功能,可以用于在以后的版本中添加新功能,而不会影响现有代码的工作方式。如果要使用这个特性,开发人员必须确保在QStyleOption的每个版本中更新版本号。
2 QStyleOptionViewItem
QBrush backgroundBrush
视图项的背景笔刷。
Qt::CheckState checkState
视图项的复选框状态。
Qt::Alignment decorationAlignment
视图项内装饰图像的对齐方式。
QStyleOptionViewItem::Position decorationPosition
装饰图像的位置。
QSize decorationSize
装饰图像的大小。
Qt::Alignment displayAlignment
视图项内文本的对齐方式。
QStyleOptionViewItem::ViewItemFeatures features
视图项的特性。
QFont font
视图项内的字体
QIcon icon
视图项内的图标。
QModelIndex index
视图项的模型索引
bool showDecorationSelected
表示视图项是否显示装饰图像。如果该变量为true,则表示视图项选择了装饰图像,并且应显示该装饰图像。否则,装饰图像不应显示。
QString text
视图项内的文本。
QT(9)-QStyleOption及其子类的更多相关文章
- Qt之模型/视图(自定义按钮)(使用QStyleOption的子类进行drawControl,和我用的方法完全不一样)
http://blog.csdn.net/liang19890820/article/details/50974059
- QT界面 理解QStyle和QStyleOption以及QStyleFactory
QStyleOption类和QStyle类简介 QStyleOption类存储QStyle函数使用的参数.QStyleOption及其子类包含了QStyle函数绘制图形元素所需的所有信息. 由于性能原 ...
- 每日一笔记之2:QT之坐标系统:
以前一直多单片机开发,也没怎么使用过大的显示器,第一次学习,备忘: QT画图系统. 绘图,通过QPainter类实现. Qt的绘图系统对底层函数进行了良好的封装,使得在屏幕和设备的绘图功能可能使用相同 ...
- Qt之自定义插件(for Qt Designer)
之前Blog里面有关于QWT的编译.配置.使用的文章,分别是在VS与Creator下进行的. QWT编译.配置.使用(VS2010 + Qt5.1.0). QWT编译.配置.使用(Qt Creator ...
- Qt经典—线程、事件与Qobject(耳目一新)
介绍 You’re doing it wrong. — Bradley T. Hughes 线程是qt channel里最流行的讨论话题之一.许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到 ...
- Qt经典—线程、事件与Qobject
介绍 You’re doing it wrong. — Bradley T. Hughes 线程是qt channel里最流行的讨论话题之一.许多人加入了讨论并询问如何解决他们在运行跨线程编程时所遇到 ...
- 【Qt开发】事件循环与线程 一
事件循环与线程 一 初次读到这篇文章,译者感觉如沐春风,深刻体会到原文作者是花了很大功夫来写这篇文章的,文章深入浅出,相信仔细读完原文或下面译文的读者一定会有收获. 由于原文很长,原文作者的行文思路是 ...
- QCanvasItem介绍-QT3
QCanvasItem类提供一个在QCanvas上的抽象图形对象. 各种QCanvasItem子类提供立即可用的行为.这个类是一个纯粹的抽象超类,它提供了在所有具体的canvas项目类中共享的行为.Q ...
- C++ GUI Qt4编程-创建自定义窗口部件
C++ GUI Qt4编程-创建自定义窗口部件 Qtqt4 通过Qt窗口部件进行子类化或者直接对QWidget进行子类化,就可以创建自定义窗口部件,下面示范两种方式,并且也会说明如何把自定义窗口部 ...
- C++ GUI Qt4学习笔记05
C++ GUI Qt4学习笔记05 qtc++正则表达式 QIntValidator -- 只让用户输入整数 QDoubleValidator -- 只让用户输入浮 ...
随机推荐
- python:导入库、模块失败
一般发生在程序开始部分: from pymodbus.client.sync import ModbusSerialClient from pymodbus.payload import Binary ...
- struct 结构体分析
struct分析 1.无成员的空结构体size为 1byte 2.通过/zp可以调整对齐值,默认是8字节 //设编译对齐设定值为Zp //设成员变量的类型为 member type //设成员变量在结 ...
- boinc使用笔记
安装 yum install -y epel-release yum install -y boinc-client boinc-manager 启动 在图形界面开启终端 boinc boincmgr
- 2022-1-11 控件学习3 文本渲染、TabIndex、Border、Slider、ProgressBar、
WPF文本渲染 TextOptions.TextFormattingMode:默认值Ideal大部分是好用的,但是非常小的文本使用Display渲染会好一些 TextRenderMode:使用抗锯齿 ...
- 一个批处理,解决你重装python第三方模块的烦恼~(1.0版本)
@echo offpip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepython -m pip insta ...
- Go语言中指针详解
指针在 Go 语言中是一个重要的特性,它允许你引用和操作变量的内存地址.下面是指针的主要作用和相关示例代码: 1. 引用传递 在 Go 中,所有的变量传递都是值传递,即复制变量的值.如果你想在一个函数 ...
- Angular:error TS2717: Subsequent property declarations must have the same type. Property 'contentRect' mu st be of type 'DOMRectReadOnly', but here has type 'DOMRectReadOnly'.
解决方案 在tsconfig.json的compilerOptions选项中添加如下内容"skipLibCheck": true. 如下图所示 之后重新启动项目. 如下图启动成功
- C++ 核心指南之 C++ 哲学/基本理念(下)
C++ 核心指南(C++ Core Guidelines)是由 Bjarne Stroustrup.Herb Sutter 等顶尖 C+ 专家创建的一份 C++ 指南.规则及最佳实践.旨在帮助大家正确 ...
- 【干货】浅谈如何给.net程序加多层壳达到1+1>2的效果
软件破解分白盒和黑盒两种方式. 白盒破解:白盒破解是指对软件进行破解时,攻击者可以访问软件的内部结构和源代码.这种破解方式通常发生在软件的开发者.技术人员或软件公司内部.攻击者使用这些详细信息来理解软 ...
- 使用kubeadm部署kubernetes
k8s版本:1.15.0 前期准备 节点: master:172.50.13.103(2核2G) node-1:172.50.13.104(2核2G) node-2:172.50.13.105(2核2 ...