4) If no themewas found ask thetoa theme
平台下返回
QPlatformTheme *QWindowsIntegration::createPlatformTheme(const QString &name) const{if (name == QLatin1String(QWindowsTheme::name))return new QWindowsTheme;return QPlatformIntegration::createPlatformTheme(name);}
5) Fall back on the built-in "null"theme.
兜底策略 , 如果前几步都没有找到一个主题 , 则使用默认
的绘制过程
首先会走到:: 绘制
/*!\reimp*/void QPushButton::paintEvent(QPaintEvent *){QStylePainter p(this);QStyleOptionButton option;initStyleOption(&option);p.drawControl(QStyle::CE_PushButton, option);}
是风格的设置类 , 定义了最基本的绘制控件所需的信息 。
绘制不同控件时 , 控件所使用的设置类继承 , 且值不同 。
绘制按钮的风格设置类继承时 , Type = 表明是要绘制按钮 , 且添加了一些按钮才有的属性 。类用于描述绘制按钮的参数 。
之后:: 会根据当前的平台所创建的不同的style派生类创建当前平台的按钮风格 , 例如下
最后 调用(Qt自带的光栅化引擎)将图片渲染出来 , 其中的渲染过程中调用了指令集 , 提高了效率:
参考文档
【qt-渲染原理】#-for-
- 核工程:了解核反应堆的运行原理和组成结构
- Spring Cloud底层原理与核心组件
- ETCD原理详细解析
- Spring Cloud核心组件工作原理
- 大部分核电站的工作原理是什么?
- 核电站反应堆技术与原理
- 摆钟的摆的等时性原理是谁发现的
- Spring-Cloud核心组件及底层原理
- 29-基于stm32单片机智能红外计数器人流量统计程序原理图PCB元件清单
- CVE-2020-15999:Chrome FreeType字体库堆溢出原理分析