Qt: Изменить шрифт в зависимости от статуса: включено: отключено CSS - PullRequest
0 голосов
/ 10 мая 2018

У меня разные QLabels со следующей таблицей стилей.Удивительно, но когда они отключены, цвет меняется, но не размер шрифта и не вес шрифта.Шрифт всегда тот, который определен в QLabel (независимо от того, включена метка или нет).Я что-то пропустил?

setStyleSheet(QString(
            "QLabel{"
            "    font-family: %1; "
            "    font-size: 16px; "
            "    font-weight: bold; "
            "    color: %3; "
            "}"
            "QLabel::!enabled {"
            "    font-size: 12px; "
            "    font-weight: normal; "
            "    color: %2; "
            "}").arg(fontFamilyName).arg(MEDIUM_GREY).arg(SUPER_DARK_GREY));

1 Ответ

0 голосов
/ 10 мая 2018

Я бы начал с изменения QLabel::!enabled на QLabel:disabled.Включены и отключены псевдо-состояния , и согласно документации здесь они доступны с одним двоеточием, а не с двойным.

Кроме того, у вас все еще могут быть ошибки в таблицах стилей Qt (не могу быть уверен, поскольку вы не упомянули версию Qt, которую вы используете).

Если после изменения !enabled на :disabled проблема все еще присутствует, я бы предложил попробовать следующие обходные пути:

Два обходных пути, которые может работать:

  1. Установить семейство шрифтов в части ! Enabled , хотя это кажется избыточным;
  2. Установить фон (например, background-color: transparent;

Для получения более подробной информации о возможных ошибках Qt Style Sheet, с которыми вы можете столкнуться, я бы посоветовал взглянуть на трекер ошибок Qt здесь .

...