129void QRadioButton::initStyleOption(QStyleOptionButton *option)
const
133 Q_D(
const QRadioButton);
134 option->initFrom(
this);
135 option->text = d->text;
136 option->icon = d->icon;
137 option->iconSize = iconSize();
139 option->state |= QStyle::State_Sunken;
140 option->state |= (d->checked) ? QStyle::State_On : QStyle::State_Off;
141 if (testAttribute(Qt::WA_Hover) && underMouse()) {
142 option->state.setFlag(QStyle::State_MouseOver, d->hovering);
149QSize QRadioButton::sizeHint()
const
151 Q_D(
const QRadioButton);
152 if (d->sizeHint.isValid())
155 QStyleOptionButton opt;
156 initStyleOption(&opt);
157 QSize sz = style()->itemTextRect(fontMetrics(), QRect(), Qt::TextShowMnemonic,
158 false, text()).size();
159 if (!opt.icon.isNull())
160 sz = QSize(sz.width() + opt.iconSize.width() + 4, qMax(sz.height(), opt.iconSize.height()));
161 d->sizeHint = style()->sizeFromContents(QStyle::CT_RadioButton, &opt, sz,
this);
214bool QRadioButton::event(QEvent *e)
217 if (e->type() == QEvent::StyleChange
219 || e->type() == QEvent::MacSizeChange
222 d->setLayoutItemMargins(QStyle::SE_RadioButtonLayoutItem);
223 return QAbstractButton::event(e);