【问题标题】:Application Window Style应用程序窗口样式
【发布时间】:2015-02-26 10:50:46
【问题描述】:

虽然我的操作系统是 Windows,但我希望我的应用程序看起来像 Mac 应用程序。我知道我可以使用QApplication::setStyle 轻松改变这种风格。

QApplication::setStyle(new QWindowsVistaStyle)

我知道Qt 也提供MacStyle,对于MacStyle

QApplication::setStyle(new QMacStyle)

但是,QMacSytle 似乎没有声明。编译器无法识别它。 Qt 网页说

Warning: This style is only available on Mac OS X because it relies on the HITheme APIs.

还有其他方法可以使用Mac OS 样式窗口吗?因为我需要使用它。

【问题讨论】:

  • 您不能在不受支持的平台上使用特定于平台的样式,因为QMacStyle 使用本机 OS X API。警告是正确的。只需阅读并理解它。你可以为看起来像 OS X 风格的窗口创建自己的 QStyle,但它需要单个开发人员多年的工作。

标签: c++ qt qstyle


【解决方案1】:

Qt5 有设置样式的新方法。例如:

QApplication a(argc, argv);
qDebug() << QStyleFactory::keys();
a.setStyle(QStyleFactory::create("Fusion"));

在我的电脑输出是:

(“Windows”、“WindowsXP”、“WindowsVista”、“Fusion”)

如您所见,mac os 样式不可用。

QStyleFactory 类创建 QStyle 对象。

QStyle 类是封装外观的抽象基类 和 GUI 的感觉。 QStyleFactory 创建一个 QStyle 对象使用 create() 函数和标识样式的键。款式是 内置或从样式插件动态加载(参见 QStylePlugin)。

可以使用 keys() 函数检索有效密钥。通常 它们包括“windows”和“fusion”。 取决于平台, “windowsxp”、“windowsvista”、“gtk”和“macintosh”可能可用。 请注意,键不区分大小写。

【讨论】:

  • 如果你不使用Qt5,请告诉我,因为这个答案只对Qt5有效
  • 不过,你不能在 Windows 上使用 OSX 主题。
  • @el.pescado 因为这是不可能的,我证明了(官方文档的描述,我用粗体写的最重要的部分)我的答案到底有什么问题?我不明白
  • @Chernobyl 您的回答非常好。也许否决票是因为您没有强调这是不可能的。我建议您从第一段开始,例如:“抱歉,在 Windows 上无法使用 OSX 它们”,然后讨论如何通过使用样式键和文档来证明它。最初的答案从“Qt 5 has new way to set style...”开始可能有点误导,因为人们首先会认为这是可能的。
猜你喜欢
  • 2019-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-17
  • 2011-10-10
相关资源
最近更新 更多