Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
Andrewshkovskii |
9.8.2011, 10:34
Сообщение
#1
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1
|
Репост Link.
При изменении CSS у виджета, у когорого есть какие-то саб-контролы (QComboBox - down_arrow и т.д.) убирается CSS текущей темы от ОС. Т.е. саб-контролы из XP превращаются в саб-контролы из Win'98: Link (border : 1px solid red) Как это можно поправить? т.е. оставить изображение саб-контролов от текущей темы ОС? |
|
|
|
|
Litkevich Yuriy |
9.8.2011, 16:40
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(Andrewshkovskii @ 9.8.2011, 13:34) Link Как это можно поправить? Цитата Замечание: В случае сложных виджетов, таких как QComboBox и QScrollBar, если одно свойство или субэлемент управления настраивается, то и все остальные свойства или субэлементы управления также должны настраиваться. (Link)
|
|
|
|
|
ilyabvt |
9.8.2011, 17:00
Сообщение
#3
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 297 Регистрация: 23.6.2011 Пользователь №: 2765 Спасибо сказали: 45 раз(а) Репутация: 3
|
Link
Вот недавно уже была тема. |
|
|
|
|
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
|
Цитата(Andrewshkovskii @ 9.8.2011, 18:26) Link как-то можно получить текущее изображения для сабконтролов темы ОС из кода??А точнее, как бы этот самый пиксмап да использовать в Qcss? средствами qss твоя задача не решаема. ОФФ: Я много раз уже писал, что не нужно без надобности этот qss пользовать. Все чего добьетесь - это поломаете нативность отображения вашего приложения под разными платформами и даже разными стилями одной платформы. Цитата(Andrewshkovskii @ 9.8.2011, 18:26) Link Если нет, то подскажите , пожалуйста, как быть в случае, что мне надо отобразить визуально то, что пользователь вводи не верную информацию в инпуты? Просто изменяй в нужный момент палитру требуемого виджета (в твоем случае в качестве colorRole будет QPalette::Base)Цитата(Andrewshkovskii @ 9.8.2011, 18:26) Link Плюс к тому-же, где можно посмотреть как выглядят whatsThis и statusTip виджетов? Уточни, что конкретно ты хочешь? |
|
|
|
|
Andrewshkovskii |
10.8.2011, 8:37
Сообщение
#6
|
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1
|
Цитата(igor_bogomolov @ 9.8.2011, 19:33) Link Цитата(Andrewshkovskii @ 9.8.2011, 18:26) Link Если нет, то подскажите , пожалуйста, как быть в случае, что мне надо отобразить визуально то, что пользователь вводи не верную информацию в инпуты? Просто изменяй в нужный момент палитру требуемого виджета (в твоем случае в качестве colorRole будет QPalette::Base)Цитата(Andrewshkovskii @ 9.8.2011, 18:26) Link Плюс к тому-же, где можно посмотреть как выглядят 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 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 26.12.2025, 2:14 |