RadioButton в QGroupBox |
Здравствуйте, гость ( Вход | Регистрация )
RadioButton в QGroupBox |
quarz |
1.12.2010, 0:52
Сообщение
#1
|
Студент Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0 |
Хочу сделать в GroupBox вместо checkbox-а radiobutton. Причем должно работать кроссплатформенно.
Есть одно решение, но оно жутко медленное:
Настолько медленное, что приложение с тремя такими RadioGroupBox подвисает почти намертво в перерисовках. Видимо, дело в обработке стилей. Пытался разобраться в тонкостях отрисовки составных контролов, чтобы самому вместо чекбокса рисовать радиобаттон - но не получилось. Нашел drawComplexControl(), но там все отрисовывается через WindowsXPStyle |
|
|
Obey-Kun |
1.12.2010, 6:17
Сообщение
#2
|
Студент Группа: Участник Сообщений: 96 Регистрация: 24.3.2010 Пользователь №: 1556 Спасибо сказали: 3 раз(а) Репутация: 0 |
Вот тут аналогичная проблема и есть решение — http://www.qtcentre.org/threads/23063-Usin...kable-QGroupBox (первый результат в гугле по запросу «qgroupbox checkable radiobutton»)
Может, то решение быстрее? |
|
|
Litkevich Yuriy |
1.12.2010, 11:19
Сообщение
#3
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
|
|
|
Andrewshkovskii |
1.12.2010, 11:24
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Что же это за интерфейс такой, что надо выбирать ГРУППУ с помощью переключателя?? Странно, очень странно..
Проще уж тогда поставить картинки переключателя, заместо чекбокса через CSS. Все равно даже если и перерисовывать,придется описывать поведение такого виджета вручную. |
|
|
quarz |
1.12.2010, 13:49
Сообщение
#5
|
Студент Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0 |
Вот тут аналогичная проблема и есть решение — 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 |
1.12.2010, 14:03
Сообщение
#6
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
Нечаянно нажал на "спасибо"
Как это, 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 |
1.12.2010, 18:51
Сообщение
#7
|
|
Студент Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0 |
Как это, qcss теперь не кросс-платформенно? Кроссплатформенно, но не буду же я картинки для radiobutton под каждую систему искать? А потом в стилях прописывать:
и так далее для всех систем. Это не годится =) А вот, собсно, скрин интерфейса: |
|
|
||
Andrewshkovskii |
1.12.2010, 21:37
Сообщение
#8
|
Активный участник Группа: Участник Сообщений: 351 Регистрация: 27.12.2008 Пользователь №: 467 Спасибо сказали: 18 раз(а) Репутация: 1 |
А зачем вашему приложению выглядеть по разному в разных системах?что бы было "нативнееько"? ну да ладно,это уже флейм пошел.
|
|
|
igor_bogomolov |
2.12.2010, 1:17
Сообщение
#9
|
Профессионал Группа: Сомодератор Сообщений: 1215 Регистрация: 22.3.2009 Из: Саратов Пользователь №: 630 Спасибо сказали: 235 раз(а) Репутация: 29 |
А зачем вашему приложению выглядеть по разному в разных системах?что бы было "нативнееько"? Естественно. Изменение стилей или палитры считаю дурным тоном (если только вы не работаете с проф-м дизайнером ) и всячески стараюсь этого избегать (и других по рукам бью ). Приложение должно выглядеть нативно на любой платформе и иметь стиль установленный на данный момент пользователем.
|
|
|
quarz |
9.12.2010, 21:27
Сообщение
#10
|
Студент Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0 |
Под маком обнаружилась проблема - чекбоксы не стираются. В линуксе еще не тестировал.
Вот код, работающий правильно в win и mac
|
|
|
Текстовая версия | Сейчас: 29.11.2024, 6:36 |