Làm cách nào để tạo kiểu cho một khoảng thời gian là một phần của văn bản tiện ích con (ví dụ: một QLabel) thông qua biểu định kiểu toàn cầu?các vùng văn bản tạo kiểu với bộ chọn lớp từ toàn cầu QSS
Ví dụ: trong ví dụ bên dưới, cả hai thanh foo và phải có màu đỏ.
#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) tập tin dự án:
QT += widgets
SOURCES += main.cpp
tôi sẽ thực sự đánh giá cao một giải pháp mà tránh được thể xác định rõ phong cách như tôi đã làm với foo tuổi . Mục tiêu dành cho giao diện ứng dụng được xác định hoàn toàn bằng một mẫu kiểu dáng do người dùng cung cấp (được biểu thị bằng css
trong ví dụ). Hiện tại tôi sử dụng giải pháp liên quan đến các nhãn riêng biệt cho từng thành phần có màu và đó là một cơn ác mộng để duy trì.
Tôi đã tham khảo ý kiến một số nguồn trực tuyến cũng như Blanchette/Summerfield chương 19 nhưng chúng chủ yếu liên quan đến tạo kiểu cho toàn bộ tiện ích.