7
如何通过全局样式表设置作为窗口小部件文本一部分的跨度(例如 QLabel)?使用全局样式选择器设置文本区域QSS
E.g.在下面的例子中,foo和bar应该是红色的。
#include <QtWidgets/QApplication>
#include <QtWidgets/QLabel>
class
some_label : public QLabel
{
Q_OBJECT
public:
some_label(QString text = "") : QLabel(NULL) {
setText(text);
show();
};
};
#include "main.moc"
static const char *css =
"some_label { color : blue; background : black; }"
"span.some_class { color : red; }";
int
main(int argc, char **argv)
{
QApplication a(argc, argv);
a.setStyleSheet(css);
some_label label("before "
"<span style=\"color:red;\">foo</span> " /* works */
"<span class=\"some_class\">bar</span> " /* fails */
"after");
return a.exec();
}
QMAKE(QT 5.1.1)项目文件:
QT += widgets
SOURCES += main.cpp
我会很感激,避免硬编码的风格和我一样 与FOO跨度的解决方案。 目标是让应用程序看起来完全由用户提供的样式表 确定(在本例中以css
表示)。 目前我使用一种解决方法,涉及每个元素 单独的标签,它是有色的,这是一个噩梦来维护。
我已经咨询了一些在线资源以及Blanchette/Summerfield的章节 19,但那些主要关注的是样式化整个小部件。