Qcss. Изображения саб-контролов у виджетов. |
Здравствуйте, гость ( Вход | Регистрация )
Qcss. Изображения саб-контролов у виджетов. |
Andrewshkovskii |
9.8.2011, 10:34
Сообщение
#1
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Репост отсюда.
При изменении CSS у виджета, у когорого есть какие-то саб-контролы (QComboBox - down_arrow и т.д.) убирается CSS текущей темы от ОС. Т.е. саб-контролы из XP превращаются в саб-контролы из Win'98: (border : 1px solid red) Как это можно поправить? т.е. оставить изображение саб-контролов от текущей темы ОС? |
|
|
Litkevich Yuriy |
9.8.2011, 16:40
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
Как это можно поправить? Цитата Замечание: В случае сложных виджетов, таких как QComboBox и QScrollBar, если одно свойство или субэлемент управления настраивается, то и все остальные свойства или субэлементы управления также должны настраиваться. (из асистента)
|
|
|
ilyabvt |
9.8.2011, 17:00
Сообщение
#3
|
Активный участник Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3 |
http://www.forum.crossplatform.ru/index.php?showtopic=7278
Вот недавно уже была тема. |
|
|
Andrewshkovskii |
9.8.2011, 17:26
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
как-то можно получить текущее изображения для сабконтролов темы ОС из кода??А точнее, как бы этот самый пиксмап да использовать в Qcss?Ведь эти изображения сабконтролов можно получить из QStyle::StandardPixmap?
Если нет, то подскажите , пожалуйста, как быть в случае, что мне надо отобразить визуально то, что пользователь вводи не верную информацию в инпуты? Плюс к тому-же, где можно посмотреть как выглядят whatsThis и statusTip виджетов? Сообщение отредактировал Andrewshkovskii - 9.8.2011, 18:31 |
|
|
igor_bogomolov |
9.8.2011, 19:33
Сообщение
#5
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
как-то можно получить текущее изображения для сабконтролов темы ОС из кода??А точнее, как бы этот самый пиксмап да использовать в Qcss? средствами qss твоя задача не решаема. ОФФ: Я много раз уже писал, что не нужно без надобности этот qss пользовать. Все чего добьетесь - это поломаете нативность отображения вашего приложения под разными платформами и даже разными стилями одной платформы. Если нет, то подскажите , пожалуйста, как быть в случае, что мне надо отобразить визуально то, что пользователь вводи не верную информацию в инпуты? Просто изменяй в нужный момент палитру требуемого виджета (в твоем случае в качестве colorRole будет QPalette::Base)Плюс к тому-же, где можно посмотреть как выглядят whatsThis и statusTip виджетов? Уточни, что конкретно ты хочешь? |
|
|
Andrewshkovskii |
10.8.2011, 8:37
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Если нет, то подскажите , пожалуйста, как быть в случае, что мне надо отобразить визуально то, что пользователь вводи не верную информацию в инпуты? Просто изменяй в нужный момент палитру требуемого виджета (в твоем случае в качестве colorRole будет QPalette::Base)Плюс к тому-же, где можно посмотреть как выглядят whatsThis и statusTip виджетов? Уточни, что конкретно ты хочешь?Как мне тогда решить идеологический вопрос о том, как отображать инпуты, где введены не верные значения? Через палитру? Хорошо, сейчас погляжу Я предполагал использовать Qcss для визуального отображения , и какое-то из значений statusTip, whatsThis, toolTip для указания, какие же значения в инпут должны попасть. Но я не смог найти как же визуально выглядят statusTip, toopTip показывается с большим оффсетом от виджета.. P.S.: к сожалению, приложения будет работать в основном под виндами.. но и там есть 2 разных стиля (стиль Xp и стиль Vista) Сообщение отредактировал Andrewshkovskii - 10.8.2011, 8:46 |
|
|
Andrewshkovskii |
11.8.2011, 8:53
Сообщение
#7
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
С палитрой беда вышла. Если меняешь палитру, то все чилды (например, QCalendarWidget у QDateTimeEdit) тоже её меняет, что не приемлимо. Есть workaround такой :
Положить за виджет QFrame и ему красить границы. Только проблема с тем, что программно я не нашел как это сделать, т.е. сначала надо найти позицию виджета в лейауте (QGridLayout, QFormLayout, QVbox, QHBox..) но это, видимо, не возможно. (хотя точнее сказать - нет простого метода это сделать, найти-то перебором всегда можно) Сообщение отредактировал Andrewshkovskii - 11.8.2011, 9:00 |
|
|
Текстовая версия | Сейчас: 22.12.2024, 23:11 |