我有一个带有Qt样式表的QLabel
,它设置了一个深色背景:
QLabel {
background: black;
color: white;
}
当我添加一个嵌入URL的文本并将Qt::TextFormat
设置为Qt::RichText
时,它就能正常工作。链接显示为默认的深蓝色,在深色背景上难以阅读。
我尝试了使用样式表来自定义它,例如:
a { color: white; }
QLabel!visited { color: white; }
但是这没有任何效果。唯一有效的方法似乎是更改应用程序的QPalette
:
QPalette newPal(qApp->palette());
newPal.setColor(QPalette::Link, Qt::white);
newPal.setColor(QPalette::LinkVisited, Qt::white);
qApp->setPalette(newPal);
然而这需要硬编码颜色。是否有任何方法可以从样式表中设置颜色?
编辑:
我发现自定义调色板还有一个问题。如果我只想修改我的小部件的调色板(在上面的示例中用widget
替换qApp
),那么这并不起作用。我不想影响应用程序中的所有其他QLabels
,那么如何将调色板更改限制为此小部件?
<a href="..." style="color: 颜色">...</a>
。请注意,这个答案不涉及样式表,因此并没有回答原始问题...但仍然有用。 - darrenp