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