Название: Стили мешают палитре Отправлено: Yegor от Октябрь 25, 2012, 20:13 Здравствуйте!
Мне нужно в виджет установить фоновую картинку с помощью палитры. А затем применить какой либо стиль с помощью каскадной таблице стилей. 1. Сначала с помощью палитры устанавливаю фоновую картинку. Код: QPalette pal1; 2. Затем применяю стили. Код: MyWidget->setStyleSheet (strMyStyleSheet); Вопрос, как сделать чтобы при применении стиля фон остался прежний? Фоновую картинку мне нужно установить только с помощью палитры а не стилей. Так как изображение берется из базы данных, а не из файла на жестком диске. Поэтому мне нужно использовать как палитру так и стили одновременно. Название: Re: Стили мешают палитре Отправлено: Bepec от Октябрь 25, 2012, 20:27 Вы селекторы у CSS нормальные проставили?
Или проще выражаясь - у вас там не задаётся ли пустой/загруженный фон для класса, которым является myWidget? Если да - то у вас наложение и поведение ожидаемое. Как с этим справиться? Селекторами обойти ваш класс, у которого есть фон. PS уверен на 80% что сработает, но 20% ... :D Название: Re: Стили мешают палитре Отправлено: Yegor от Октябрь 25, 2012, 20:40 Приведите, пожалуйста, кусочек style sheet, в которых селекторы обходят класс. Чтобы не пропадал фон палитры.
Селекторов может и не быть. Даже если я подгружаю полностью пустой CSS - все равно фон сбрасывается. Название: Re: Стили мешают палитре Отправлено: xokc от Октябрь 26, 2012, 08:26 Как с этим справиться? Селекторами обойти ваш класс, у которого есть фон. Он же стиль назначает конкретному объекту, у которого и переопределил палитру. Как он его обойдёт.На мой взгляд, варианта два - либо фон тоже непосредственно в стилях переопределять, либо - переопределять MyWidget::paintEvent и рисовать фон там. Название: Re: Стили мешают палитре Отправлено: Bepec от Октябрь 26, 2012, 10:53 Что мешает выделить объекты с нужным стилем? Неуверен в сработке, смотри PS.
PS скиньте минимально компилируемый пример в архиве. Тогда я посмотрю и попробую. Название: Re: Стили мешают палитре Отправлено: lit-uriy от Октябрь 27, 2012, 20:15 Насколько я помню асистент, каскадные таблицы стилей не совместимы со стилями Qt (как следствие с палитрой)
Название: Re: Стили мешают палитре Отправлено: Bepec от Октябрь 27, 2012, 22:05 Эммм... Ну как то же палитра берёт системные цвета при поставленном styleSheet? Так же спокойно отрисовывает все состояния кнопок/окон, цвета которых опять же берутся из палитры.
В общем надо попробовать. Завтра. С утреца. Посмотрю. update: Утрооо... Вот на ваш суд - виджет с фоновой палитрой и установленным стайлшитом (установлен в виджете, с использованием селекторов для кнопок). М? PS ТС(создатель темы.) напиши что тебе надо - я мб тебе даже правильный стайлшит подкину. Название: Re: Стили мешают палитре Отправлено: xokc от Октябрь 29, 2012, 19:21 Ему нужно, чтобы на "кнопочку" фон ставился через через палитру, а, например, "border" у этой же кнопочки через stylesheet.
Название: Re: Стили мешают палитре Отправлено: Bepec от Октябрь 29, 2012, 19:23 Хм. интересная задачка :)
Вроде так нельзя в общем то, но если подумать... PS вроде где то видел, что CSS может брать цвет из стандартной палитры. Поищу :) |