Есть одно решение, но оно жутко медленное:
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