crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> RadioButton в QGroupBox
quarz
  опции профиля:
сообщение 1.12.2010, 0:52
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 49
Регистрация: 3.11.2009
Пользователь №: 1202

Спасибо сказали: 5 раз(а)




Репутация:   0  


Хочу сделать в GroupBox вместо checkbox-а radiobutton. Причем должно работать кроссплатформенно.
Есть одно решение, но оно жутко медленное:
void RadioGroupBox::paintEvent(QPaintEvent *event)
{
    //будет выделяться место под чекбокс, но сам он отрисовываться не будет
    setStyleSheet("QGroupBox::indicator:unchecked{image: url();}QGroupBox::indicator:checked{image: url();}");
    QGroupBox::paintEvent(event);
    setStyleSheet("");

    //рисуем radiobutton
    QStyleOptionGroupBox option;
    QStylePainter paint(this);
        QStyleOptionButton box;
    QRect checkBoxRect = paint.style()->subControlRect(QStyle::CC_GroupBox, &option, QStyle::SC_GroupBoxCheckBox, this);
        box.QStyleOption::operator=(option);
        box.rect = checkBoxRect;
    paint.style()->drawPrimitive(QStyle::PE_IndicatorRadioButton, &box, &paint, this);
}

Настолько медленное, что приложение с тремя такими RadioGroupBox подвисает почти намертво в перерисовках. Видимо, дело в обработке стилей.
Пытался разобраться в тонкостях отрисовки составных контролов, чтобы самому вместо чекбокса рисовать радиобаттон - но не получилось. Нашел drawComplexControl(), но там все отрисовывается через WindowsXPStyle
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Litkevich Yuriy
  опции профиля:
сообщение 1.12.2010, 11:19
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(quarz @ 1.12.2010, 2:52) *
Хочу сделать в GroupBox вместо checkbox-а radiobutton.
ничего не понял. для чего вся эта петрушка? Чем обычные радиокнопки помещённые в QGroupBox не устраивают?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 25.11.2024, 14:51