Название: Проблема с фоном - StyleSheet Qt Отправлено: alcalinn от Апрель 08, 2016, 19:06 Cоздал класс наследующий от QWidget. Хотел добавить к нему фон при помощи StyleSheet, но почему-то в этот фон раскрашиваются кнопки и Label которые находятся на этом QWidget-е. Можете объяснить почему и/или сказать что надо сделать чтобы нормально поставить фон?
Here the program (http://i.stack.imgur.com/Ss7hW.png) Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: torwig от Апрель 08, 2016, 19:16 Пишите правило в setStyleSheet
- по имени класса: Код: .QWidget или - по имени обьекта Код: #MyWidget ибо если без этого, то кнопки и метки имеют тот же CSS, что и у родителя (вашего наследника QWidget). Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: alcalinn от Апрель 08, 2016, 19:27 Пишите правило в setStyleSheet - по имени класса: Код: .QWidget или - по имени обьекта Код: #MyWidget ибо если без этого, то кнопки и метки имеют тот же CSS, что и у родителя (вашего наследника QWidget). Представим что Widget3 - название моего объекта. Чтобы поставить фон, я должен сделать так? #Widget3{background-image:url(./image.png)} //Во всяком случае это почему-то не работает, фон не появляется. Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: Alex Custov от Апрель 08, 2016, 21:35 #Widget3{background-image:url(./image.png)} //Во всяком случае это почему-то не работает, фон не появляется. https://wiki.qt.io/How_to_Change_the_Background_Color_of_QWidget Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: Bepec от Апрель 08, 2016, 22:14 Ранее у кутешки была такая бага - виджет верхнего уровня не принимал картинку.
Решение довольно простое, хоть и кажется костыльным - положить QFrame в виджет и потом уже на него накидать остальное. Фрейм спокойно принимает картинку. PS попробуйте, вдруг этот совет поможет :) PPS маргины главного лейаута нужно в 0 установить, иначе будет неприятная рамка в 9 пикселей :) Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: pl от Апрель 12, 2016, 00:03 Решение довольно простое, хоть и кажется костыльным - положить QFrame в виджет и потом уже на него накидать остальное Проблема решается ручной отрисовкой стиля, как в примере в вики в предыдущем комментарии. Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: alcalinn от Апрель 23, 2016, 22:57 Ранее у кутешки была такая бага - виджет верхнего уровня не принимал картинку. Решение довольно простое, хоть и кажется костыльным - положить QFrame в виджет и потом уже на него накидать остальное. Фрейм спокойно принимает картинку. PS попробуйте, вдруг этот совет поможет :) PPS маргины главного лейаута нужно в 0 установить, иначе будет неприятная рамка в 9 пикселей :) Можешь дать пример? Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: Bepec от Апрель 24, 2016, 03:08 Почему бы и нет.
Бага кстати осталась и на последней версии Qt. :D Файл во вложении снизу поста. to pl: ручная отрисовка стиля != QSS. Это как раз жуткий отказ от изменяемого на лету стиля в угоду жестко закодированному оформлению :D Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: Alex Custov от Апрель 25, 2016, 10:31 Правильный ответ дан по ссылке https://wiki.qt.io/How_to_Change_the_Background_Color_of_QWidget . Использование QFrame - это хак, который в принципе делает тоже самое, что и решение по ссылке - вручную отрисовывает стиль. Не сам QSS, а объект стиля.
Название: Re: Проблема с фоном - StyleSheet Qt Отправлено: Bepec от Апрель 25, 2016, 12:40 Я б сказал и то и то хак, который исправляет баг.
PS но это уже несущественно :) |