在Qt GUI应用程序中,QApplication::style()->objectName()
将返回当前样式,例如" windowsvista"。
如何/在何处选择此默认样式,以及它用于决定哪些信息?
答案 0 :(得分:1)
在文档中:
Qt包含一组模拟样式的QStyle子类 Qt支持的不同平台(QWindowsStyle,QMacStyle等)。
您可以使用键设置样式:windowsvista
,例如fusion
,macintosh
等。使用任何键时,返回的样式将是QStyle的子类。根据您使用的平台,您可以访问一定数量的密钥。
如何/在何处选择此默认样式
这是在QStyleFactory来源file中完成的。您还可以查看QStyle源代码file,了解正在发生的事情。
用什么信息来决定
默认样式取决于平台,然后您可以在此平台上的处置中选择任何样式。
答案 1 :(得分:1)
Qt附带内置样式,这些是(在我的5.9.2上):
每个人都有自己的类,派生自QStyle
。
要查看哪些可用(取决于Qt构建配置):
const QStringList styles = QStyleFactory::keys();
for(QString s : styles)
{
qDebug() << s;
}
自定义插件(即QTDIR / plugins / styles目录中的库)也会显示(如果存在)。
如何选择默认样式?
默认样式在QApplication
方法style()
, qapplication.cpp 文件中按以下顺序搜索:
QT_STYLE_OVERRIDE
设置(在QApplicationPrivate::process_cmdline()
中设置); QApplicationPrivate::desktopStyleKey()
返回的样式(此方法从当前平台主题加载样式列表,并从QStyleFactory::keys()
列表中选择此列表中的第一个名称); QStyleFactory::keys()
列表中的第一项。如果无法确定样式,则在声明
后方法将返回0Q_ASSERT(!"No styles available!");