I have a QLabel
with a Qt stylesheet that sets a dark background:
QLabel {
background: black;
color: white;
}
This works fine until I add text with an embedded URL and set the Qt::TextFormat
to Qt::RichText
. The link displays as the default dark blue, which is hard to read on a dark background.
I've tried customising it via a stylesheet such as:
a { color: white; }
QLabel!visited { color: white; }
but this doesn't have any effect. The one thing that does seem to work is changing the application's QPalette
:
QPalette newPal(qApp->palette());
newPal.setColor(QPalette::Link, Qt::white);
newPal.setColor(QPalette::LinkVisited, Qt::white);
qApp->setPalette(newPal);
However this requires the colour to be hardcoded. Is there any way I can set the colour from a stylesheet instead?
EDIT:
I've discovered a further problem with customising the palette. If I want to just modify the palette of my widget (substituting widget
for qApp
in the sample above) then this doesn't work. I don't want to affect all the other QLabels
in the app, so how do I limit the palette changes to this widget?