gpt4 book ai didi

c++ - Qt如何选择默认样式?

转载 作者:搜寻专家 更新时间:2023-10-31 01:30:22 26 4
gpt4 key购买 nike

在 Qt GUI 应用程序中,QApplication::style()->objectName() 将返回当前样式,例如“windowsvista”。

它如何/在哪里选择这个默认样式,它使用什么信息来决定?

最佳答案

Qt 带有内置样式,这些是(在我的 5.9.2 上):

  • window
  • WindowsXP
  • WindowsVista
  • 安卓系统
  • 融合
  • 苹果电脑

每个都有自己的类,派生自QStyle

查看哪些可用(取决于 Qt 构建配置):

const auto & styles = QStyleFactory::keys();
for(const auto & s : styles)
{
qDebug() << s;
}

如果存在自定义插件(即 QTDIR/plugins/styles 目录中的库),也会显示。

默认样式是如何选择的?

QApplication 方法 style() 中搜索默认样式,在 qapplication.cpp 文件中,按以下顺序:

  1. 样式覆盖,如果由环境变量 QT_STYLE_OVERRIDE 设置(在 QApplicationPrivate::process_cmdline() 中设置);
  2. QApplicationPrivate::desktopStyleKey() 返回的样式(此方法从当前平台主题加载样式列表,并从该列表中选择出现在 QStyleFactory 中的第一个名称::keys() 列表);
  3. QStyleFactory::keys() 列表中的第一项。

如果无法确定样式,该函数将断言

Q_ASSERT(!"No styles available!");

关于c++ - Qt如何选择默认样式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093102/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com