任意检查Qt样式表

时间:2015-05-19 22:59:56

标签: c++ css qt

我有几个Qt样式表,看起来像这样:

MyClass
{
    my_color: #abcdef;
}

然而,我最近将MyClass移动到一个新的命名空间ns,这意味着它的相应qss类名现在是" ns - MyClass",而不仅仅是" MyClass&#34 ;。因此,我的所有样式表现在都无效。不幸的是,它们并非都在我的控制之下,因此我无法手动编辑它们。

所以我的问题是:如何配置ns::MyClass以使用MyClass的所有相同样式设置?

显然,Qt必须在某个时候解析样式表。因此,如果我可以访问已解析的样式表并仅提取影响MyClass的部分,我应该能够通过ns::MyClasssetStyle()将这些部分添加到setStyleSheet()。但我找不到办法做到这一点。

我的目标是Qt 4.8。

1 个答案:

答案 0 :(得分:0)

您需要修补Qt以向QApplication添加两种方法:

void setClassSubstitutions(const QMap<QString, QString> &);
QMap<QString, QString> classSubstitutions() const;

替换将在应用程序的PIMPL中进行,您需要让样式表机制使用它们。 Qt所需的全部补丁可能是二十几行(或者我希望如此)。