QDesigner中验证QSS格式是否有效的方法

QDesigner中编辑样式表,如下图所示,可以及时验证所写QSS格式是否正确。这个功能是QtGui的内部功能,并未放开。我们可直接包含其头文件,使用其方法。

使用QCss::Parser

使用QCss类相关代码:

  • 方式:可包含#include <QtGui/5.7.0/QtGui/private/qcssparser_p.h>
  • 此法为QtGui中方法,正常链接QT += gui即可使用.

节选自QDesigner源码中函数

源码位置:C:\Qt\Qt5.7.0\5.7\Src\qttools\src\designer\src\lib\shared\stylesheeteditor.cpp

1
2
3
4
5
6
7
8
9
10
11
bool StyleSheetEditorDialog::isStyleSheetValid(const QString &styleSheet) {
QCss::Parser parser(styleSheet);
QCss::StyleSheet sheet;
if (parser.parse(&sheet))
return true;
QString fullSheet = QStringLiteral("* { ");
fullSheet += styleSheet;
fullSheet += QLatin1Char('}');
QCss::Parser parser2(fullSheet);
return parser2.parse(&sheet);
}