Ошибки таблицы стиля Qt?
У меня много ошибок в простых QSS (таблицы стилей Qt). Это ошибки Qt?
Пример:
![enter image description here]()
Таблицы стилей:
#check1 {
color: red //didn't work here
}
#check2 {
color: red; //but work here
background-color: black
}
#label1 {
color: blue;
text-decoration: underline //work fine here
}
#label2:hover {
color: blue;
text-decoration: underline //but didn't work here
}
Источники:
#include <QtGui>
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
app.setStyleSheet(" #check1 {color: red} \
#check2 {color: red; background-color: black} \
#label1 {color: blue; text-decoration: underline} \
#label2:hover {color: blue; text-decoration: underline}");
QWidget w; w.setFixedSize(120,130);
QCheckBox check1("checkbox1",&w);
check1.setObjectName("check1");
check1.move(10,0);
QCheckBox check2("checkbox1",&w);
check2.setObjectName("check2");
check2.move(10,30);
QLabel label1("label1", &w);
label1.setObjectName("label1");
label1.move(10,60);
QLabel label2("label2", &w);
label2.setObjectName("label2");
label2.move(10,90);
w.show();
return app.exec();
}
qt 4.7.3-3; arch linux; Резервный режим гнома 3
Ответы
Ответ 1
Для первого флажка проблема находится где-то в стиле Gtk +:
![enter image description here]()
QLabel
, QPushButton
или QCheckBox
не поддерживают изменения шрифта (в том числе text-decoration
) в селекторе :hover
псевдо-состояния css. Самый простой вид, который выглядит, как представляется, QToolButton
(который можно использовать для замены QLabels, если вам это действительно нужно).
Изменения палитры (цвета и стили переднего плана и фона) для этого состояния поддерживаются всеми виджетами.
Ответ 2
Я не могу сказать, что проблема с вашим флажком, но следующий лакомый кусочек можно найти в соответствии с ссылкой на таблицу стилей Qt (я не могу найти его в Интернете, но он в Qt Assistant)
QLabel поддерживает модель коробки. Не поддерживает псевдо-состояние: hover.
Другими словами, QLabel: hover не поддерживается.
Ответ 3
Вместо
// some comment
использовать
/* some comment */
. Я предполагаю, что они выбрали последнюю форму, поскольку она невосприимчива к появлению новой линии.
Кроме того, если все еще не все в порядке, то, похоже, вы столкнулись с ошибками: https://bugreports.qt-project.org//browse/QTBUG-4307.
Как обходной способ настройки только цвета текста, попробуйте
#check1:hover { color:red; background-color:transparent; }
который работал у меня.
Ответ 4
Не стоит
color: red
be
color: red;
?
Отсутствие точек с запятой несколько мест в вашем размещенном коде.