Это единственный фактический ответ. Обратите внимание, что конструктор Qt явно окрашивает каждую ссылку в явном виде, что переопределяет любое значение по умолчанию в вашей глобальной таблице стилей.
я естьQLabel
с таблицей стилей Qt, которая устанавливает темный фон:
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
в приложении, так как я могу ограничить изменения палитры для этого виджета?