【发布时间】:2011-03-31 09:33:21
【问题描述】:
我有一个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,那么如何限制此小部件的调色板更改?
【问题讨论】:
标签: qt stylesheet qlabel