![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
quarz |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Хочу сделать в GroupBox вместо checkbox-а radiobutton. Причем должно работать кроссплатформенно.
Есть одно решение, но оно жутко медленное:
Настолько медленное, что приложение с тремя такими RadioGroupBox подвисает почти намертво в перерисовках. Видимо, дело в обработке стилей. Пытался разобраться в тонкостях отрисовки составных контролов, чтобы самому вместо чекбокса рисовать радиобаттон - но не получилось. Нашел drawComplexControl(), но там все отрисовывается через WindowsXPStyle |
|
|
Obey-Kun |
![]()
Сообщение
#2
|
![]() Студент ![]() Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: ![]() ![]() ![]() |
Вот тут аналогичная проблема и есть решение — http://www.qtcentre.org/threads/23063-Usin...kable-QGroupBox (первый результат в гугле по запросу «qgroupbox checkable radiobutton»)
Может, то решение быстрее? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Andrewshkovskii |
![]()
Сообщение
#4
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Что же это за интерфейс такой, что надо выбирать ГРУППУ с помощью переключателя?? Странно, очень странно..
Проще уж тогда поставить картинки переключателя, заместо чекбокса через CSS. Все равно даже если и перерисовывать,придется описывать поведение такого виджета вручную. |
|
|
quarz |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Вот тут аналогичная проблема и есть решение — http://www.qtcentre.org/threads/23063-Usin...kable-QGroupBox (первый результат в гугле по запросу «qgroupbox checkable radiobutton») Может, то решение быстрее? Спасибо, это то что надо! Тоже искал на qtcentre, видимо не по тем словам ) Хочу сделать в GroupBox вместо checkbox-а radiobutton. ничего не понял. для чего вся эта петрушка? Чем обычные радиокнопки помещённые в QGroupBox не устраивают?Radiobutton-ы должны быть у GroupBox-a вместо checkbox-a, когда он checkable Что же это за интерфейс такой, что надо выбирать ГРУППУ с помощью переключателя?? Странно, очень странно.. Проще уж тогда поставить картинки переключателя, заместо чекбокса через CSS. Все равно даже если и перерисовывать,придется описывать поведение такого виджета вручную. Интерфейс такой: есть 3 группы контролов, активной может быть только одна. На самом деле оч логично и удобно получается. Картинку переключателя ставить нельзя - не кроссплатформенно. А поведение пришлось сделать вручную, да. |
|
|
Andrewshkovskii |
![]()
Сообщение
#6
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
Нечаянно нажал на "спасибо"
![]() Как это, qcss теперь не кросс-платформенно? Цитата When a style sheet is active, the QStyle returned by QWidget::style() is a wrapper "style sheet" style, not the platform-specific style. The wrapper style ensures that any active style sheet is respected and otherwise forwards the drawing operations to the underlying, platform-specific style (e.g., QWindowsXPStyle on Windows XP). Или Вы говорите о поддержки драйверов для изображений ? Что-то я все равно не понял насчет групп контролов, покажите скриншот, пожалуйста, очень интересно. Сообщение отредактировал Andrewshkovskii - 1.12.2010, 14:08 |
|
|
quarz |
![]()
Сообщение
#7
|
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Как это, qcss теперь не кросс-платформенно? Кроссплатформенно, но не буду же я картинки для radiobutton под каждую систему искать? А потом в стилях прописывать:
и так далее для всех систем. Это не годится =) А вот, собсно, скрин интерфейса: |
|
|
||
Andrewshkovskii |
![]()
Сообщение
#8
|
Активный участник ![]() ![]() ![]() Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: ![]() ![]() ![]() |
А зачем вашему приложению выглядеть по разному в разных системах?что бы было "нативнееько"?
![]() |
|
|
igor_bogomolov |
![]()
Сообщение
#9
|
Профессионал ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: ![]() ![]() ![]() |
А зачем вашему приложению выглядеть по разному в разных системах?что бы было "нативнееько"? Естественно. Изменение стилей или палитры считаю дурным тоном (если только вы не работаете с проф-м дизайнером ) и всячески стараюсь этого избегать (и других по рукам бью ![]() |
|
|
quarz |
![]()
Сообщение
#10
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: ![]() ![]() ![]() |
Под маком обнаружилась проблема - чекбоксы не стираются. В линуксе еще не тестировал.
Вот код, работающий правильно в win и mac
|
|
|
![]() ![]() ![]() |
![]() |
Текстовая версия | Сейчас: 16.2.2025, 21:36 |