gpt4 book ai didi

c++ - 如何识别应用程序在 Linux 上以深色主题运行?

转载 作者:行者123 更新时间:2023-11-30 02:32:58 26 4
gpt4 key购买 nike

我开发了一个使用 qscintilla 作为文本编辑器的应用程序。我还实现了自定义词法分析器来突出显示语言特定的关键字。到目前为止,突出显示关键字的样式在我的应用程序中是硬编码的,在 Windows/Linux(Ubuntu)/Mac 上的默认主题中看起来还不错。

当用户选择深色主题(在 Linux 上)时会出现问题。根据 QScintilla 版本,编辑器的某些部分会反射(reflect)当前的主题颜色,而其他部分则不会。此外,我的自定义样式在深灰色背景上呈现深蓝色字母。

我正在寻找一些 Qt 类,它将允许我访问当前系统主题。我不想为我的应用程序小部件定义样式。我想知道什么是系统默认的非比例字体,它的大小、颜色是什么……如果我知道使用深色方案,我会选择互补色来突出显示关键字。

我检查了 QStyle、QPlatformTheme 和其他 qt 类的文档,在我看来,这些类更多地用于定义新样式,然后用于描述当前样式。

最佳答案

对于系统颜色,您可以使用 group/role QPalette 类。

对于系统字体,您可以使用例如创建一个QFont “Serif”、“Sans Serif”、“Monospace”等带有适当的 style hint发现默认值。

注意:

来自 Qt 文档:

Warning: Some styles do not use the palette for all drawing, forinstance, if they make use of native theme engines. This is the casefor both the Windows Vista and the macOS styles.

关于c++ - 如何识别应用程序在 Linux 上以深色主题运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35879025/

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