Название: Установка картинки фоном через stylesheet [Qt4] Отправлено: Crazy Sage от Сентябрь 12, 2014, 08:36 Добрый день, разбираюсь с css в qt и что-то не могу разобраться.
Есть главное окно, которому хочется сделать картинку фоном и видоизменить кнопки. С кнопками всё нормально, а вот с фоном проблемы Структура объектов в QtDesigner'е PlayArea QMainWindow -centralWidget QWidget --button1 QPushButton --button2 QPushButton --button3 QPushButton --button4 QPushButton Делаю styleSheet для верхнего объекта (PlayArea) варианты Код: #PlayArea{ Код: PlayArea{ Код: QMainWindow{ Код: #centralWidget{ Код: QWidget#centralWidget{ не работают единственный вариант, при котором у меня установился фон это Код: QWidget{ Но в такой ситуации у всех кнопок ставится фоном эта же картинка, что меня совершенно не устраивает. Что я делаю не так? Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: OKTA от Сентябрь 12, 2014, 09:25 Код показывай.
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Crazy Sage от Сентябрь 12, 2014, 09:27 Всё собрано в дизайнере, никакого кода кроме этой структуры классов и стайлшита нету. Могу конечно выложить мэйн, который делает PlayArea p->show(), но вряд ли в нём дело.
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: navrocky от Сентябрь 12, 2014, 09:31 Да, странно. Можешь попробовать QSS задать напрямую для centralWidget(), так работает. Или вот так:
Код: QMainWindow > QWidget { Правда этот вариант также затрагивает меню и статусбар. Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: OKTA от Сентябрь 12, 2014, 09:38 Задавай лучше не в дизайнере, а через QApplication::setStyleSheet. Простого
Код: QMainWindow{ Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: VPS от Сентябрь 12, 2014, 09:58 Да, странно. Можешь попробовать QSS задать напрямую для centralWidget(), так работает. Или вот так: Если обращаться по имени в поле "objectName" (например, по умолчанию - "#centralwidget"), то не должно ничего другого "задеть ".Код: QMainWindow > QWidget { Правда этот вариант также затрагивает меню и статусбар. Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Bepec от Сентябрь 12, 2014, 14:42 в Qt 4 имеется баг. Нельзя задать фоновую картинку главному окну.
Можно обойти, поставив на главное окно фрейм с нулевыми полями. Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: OKTA от Сентябрь 12, 2014, 14:45 Уверен, Верес? Я тут ради интереса создал проект с QMainWindow и впиндюрил этому QMainWindow фоновую картинку только что ???
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Bepec от Сентябрь 12, 2014, 14:49 Ммм.. уверен для 4.7.2. Сейчас уже отошёл от него на пятёрку.
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: OKTA от Сентябрь 12, 2014, 14:51 В 4.7.4 проверял!
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Bepec от Сентябрь 12, 2014, 15:35 Знач там уже поправлено :)
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Crazy Sage от Сентябрь 12, 2014, 15:46 Странно, в 4.8.6 не работает с QMainWindow.
Спасибо за совет с фреймом, воспользовался им. С centralwiget'ом впрочем тоже была нелепая ошибка, не заметил что там w маленькая. Спасибо всем. Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Bepec от Сентябрь 12, 2014, 16:13 Ххы, всё же выплыл баг :D
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: OKTA от Сентябрь 12, 2014, 16:29 ??? какие-то происки WinAPi, не иначе ;D
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Bepec от Сентябрь 12, 2014, 16:36 Да там весёлые тролли писали, у них даже в стандартных стайлшитах вместо 0 в цвете написано O :D
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Crazy Sage от Сентябрь 12, 2014, 18:11 Ххы, всё же выплыл баг :D Причём строго по правилу: "Чем более мистическую фигню творит программа, тем более дурацкую ошибку ты совершил". Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: lit-uriy от Август 07, 2017, 14:48 а в Qt5.7.1 Что-то тоже не удаётся через QSS установить фон для центрального виджета:
Код Центральному виджету задано свойство UiWidgetElevation со значением uiBackground, и только для центрального виджета такая проблема есть, если в тиснуть в другое место, то там у него фон появляется. Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: Bepec от Август 07, 2017, 19:13 У них этот баг в состоянии - никому нахрен не надо :D
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: lit-uriy от Август 08, 2017, 06:17 вот ведь задница, а так всё стройно шло до этого момента
Название: Re: Установка картинки фоном через stylesheet [Qt4] Отправлено: lit-uriy от Август 08, 2017, 06:23 П.С.
К стати, стал использовать LESS для удобства, в паре с программой Koala (под винду), она болтается в трее и автоматом генерит CSS-ку при каждом изменении Less-файла. Особенности: для инверсий надо использовать CSS3-нотацию, т.е. :not(...) иначе LESS ругается. А затем с помощью текстового редактора и регулярок над CSS-файлом нотация CSS3 превращается в "!", как это предусмотренно в QSS |