2016-03-08 65 views
1

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

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

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

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

回答

3

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

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