Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
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
|
Вот тут аналогичная проблема и есть решение — Link (первый результат в гугле по запросу «qgroupbox checkable radiobutton»)
Может, то решение быстрее? |
|
|
|
|
Litkevich Yuriy |
1.12.2010, 11:19
Сообщение
#3
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94
|
Цитата(quarz @ 1.12.2010, 2:52) Link Хочу сделать в GroupBox вместо checkbox-а radiobutton. ничего не понял. для чего вся эта петрушка? Чем обычные радиокнопки помещённые в QGroupBox не устраивают?
|
|
|
|
|
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
|
Цитата(Obey-Kun @ 1.12.2010, 6:17) Link Вот тут аналогичная проблема и есть решение — Link (первый результат в гугле по запросу «qgroupbox checkable radiobutton») Может, то решение быстрее? Спасибо, это то что надо! Тоже искал на qtcentre, видимо не по тем словам ) Цитата(Litkevich Yuriy @ 1.12.2010, 11:19) Link Цитата(quarz @ 1.12.2010, 2:52) Link Хочу сделать в GroupBox вместо checkbox-а radiobutton. ничего не понял. для чего вся эта петрушка? Чем обычные радиокнопки помещённые в QGroupBox не устраивают?Radiobutton-ы должны быть у GroupBox-a вместо checkbox-a, когда он checkable Цитата(Andrewshkovskii @ 1.12.2010, 11:24) Link Что же это за интерфейс такой, что надо выбирать ГРУППУ с помощью переключателя?? Странно, очень странно.. Проще уж тогда поставить картинки переключателя, заместо чекбокса через 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
|
Цитата(Andrewshkovskii @ 1.12.2010, 14:03) Link Как это, 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
|
Цитата(Andrewshkovskii @ 1.12.2010, 21:37) Link А зачем вашему приложению выглядеть по разному в разных системах?что бы было "нативнееько"? Естественно. Изменение стилей или палитры считаю дурным тоном (если только вы не работаете с проф-м дизайнером ) и всячески стараюсь этого избегать (и других по рукам бью |
|
|
|
|
quarz |
9.12.2010, 21:27
Сообщение
#10
|
|
Студент ![]() Группа: Участник Сообщений: 49 Регистрация: 3.11.2009 Пользователь №: 1202 Спасибо сказали: 5 раз(а) Репутация: 0
|
Под маком обнаружилась проблема - чекбоксы не стираются. В линуксе еще не тестировал.
Вот код, работающий правильно в win и mac
|
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 22.12.2025, 7:08 |