如何识别该应用程序是在黑暗主题中运行?

时间:2016-03-08 22:10:33

标签: c++ qt themes qt5 qscintilla

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

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

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

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

1 个答案:

答案 0 :(得分:3)

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

对于系统字体,您可以使用以下方法创建QFont。使用适当的style hint“Serif”,“Sans Serif”,“Monospace”等来发现默认值。