Russian Qt Forum
Сентябрь 30, 2024, 08:18 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Непонятки с QSS  (Прочитано 3360 раз)
Hvzh
Гость
« : Декабрь 23, 2015, 09:57 »

Доброго времени суток!

Имеется диалог с двумя кнопками. Пытаюсь раскрасить их используя QSS. Где-то явно ошибаюсь, но не пойму, где. При таком коде

Код:
    this->setStyleSheet("QPushButton { \
                        color: black; \
                        background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0EEEE, stop: 0.1 #4876FF, stop: 0.49 #4876FF, stop: 0.5 #4876FF, stop: 1 #E0EEEE);\
                        border-width: 1px;\
                        border-color: #339;\
                        border-style: solid;\
                        border-radius: 7;\
                        padding: 3px;\
                        padding-left: 5px;\
                        padding-right: 5px;\
                        }");
    setStyleSheet("{background-color: blue;}");

фон диалога становится синим, однако цвет кнопок при этом остается дефолтным. Если же строку
Код:
 setStyleSheet("{background-color: blue;}");
переместить вверх, то кнопки раскрашиваются, а фон диалога остается дефолтным. В итоге спасла замена строки на
Код:
qApp->setStyleSheet("QDialog{background-color: blue;}");
Тем не менее, мне непонятно, почему не прошел первый вариант?
Записан
Bepec
Гость
« Ответ #1 : Декабрь 23, 2015, 10:03 »

stylesheet это строка. большая с переносами но строка.
this->setStyleSheet и setStyleSheet это синонимы одного метода. Т.е. вторым setStyleSheet вы перезаписывали весь styleSheet.

Вам же нужно было скомбинировать оба варианта в один, например
Код:
this->setStyleSheet("QPushButton { \
                        color: black; \
                        background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0EEEE, stop: 0.1 #4876FF, stop: 0.49 #4876FF, stop: 0.5 #4876FF, stop: 1 #E0EEEE);\
                        border-width: 1px;\
                        border-color: #339;\
                        border-style: solid;\
                        border-radius: 7;\
                        padding: 3px;\
                        padding-left: 5px;\
                        padding-right: 5px;\
                        }
                        .QDialog
                        {
                        background-color: blue;
                        }
                       
                       
");

Записан
Hvzh
Гость
« Ответ #2 : Декабрь 23, 2015, 11:01 »

stylesheet это строка. большая с переносами но строка.
this->setStyleSheet и setStyleSheet это синонимы одного метода. Т.е. вторым setStyleSheet вы перезаписывали весь styleSheet.

Вам же нужно было скомбинировать оба варианта в один, например
Код:
this->setStyleSheet("QPushButton { \
                        color: black; \
                        background-color: QLinearGradient( x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #E0EEEE, stop: 0.1 #4876FF, stop: 0.49 #4876FF, stop: 0.5 #4876FF, stop: 1 #E0EEEE);\
                        border-width: 1px;\
                        border-color: #339;\
                        border-style: solid;\
                        border-radius: 7;\
                        padding: 3px;\
                        padding-left: 5px;\
                        padding-right: 5px;\
                        }
                        .QDialog
                        {
                        background-color: blue;
                        }
                        
                        
");


Спасибо! Как говорится, век живи - век учись.
Записан
Hvzh
Гость
« Ответ #3 : Декабрь 23, 2015, 11:04 »

Хотя, такая конструкция тоже не прошла:

Код:
setStyleSheet("#Dialog{background-color: blue;}");
Записан
Bepec
Гость
« Ответ #4 : Декабрь 23, 2015, 12:49 »

Вы указываете класс Dialog. Мб вы ошиблись и хотели написать QDialog?
В любом случае дальнейшие рассуждения без кода - это гадания.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.053 секунд. Запросов: 21.