qt-渲染原理( 七 )


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-