我有一个QLabelQt样式表设置一个深色背景:
QLabel {
background: black;
color: white;
}
Run Code Online (Sandbox Code Playgroud)
这工作正常,直到我添加带有嵌入URL的文本并设置Qt::TextFormat为Qt::RichText.链接显示为默认深蓝色,在深色背景上难以阅读.
我试过通过样式表来定制它,例如:
a { color: white; }
QLabel!visited { color: white; }
Run Code Online (Sandbox Code Playgroud)
但这没有任何效果.似乎有用的一件事是更改应用程序QPalette:
QPalette newPal(qApp->palette());
newPal.setColor(QPalette::Link, Qt::white);
newPal.setColor(QPalette::LinkVisited, Qt::white);
qApp->setPalette(newPal);
Run Code Online (Sandbox Code Playgroud)
然而,这需要对颜色进行硬编码.我有什么方法可以设置样式表的颜色吗?
编辑:
我发现了自定义调色板的另一个问题.如果我想只需要修改我的窗口小部件的调色板(替换widget为qApp样本上面),那么这是行不通的.我不想影响QLabels应用程序中的所有其他内容,因此如何限制此窗口小部件的调色板更改?