Я в настоящее время реализую пользовательский делегат, в части которого мне нужен QSpinBox
, который будет нарисован в методе paint(..)
.QSpinBox не нарисован правильно
void Sy_floatingPointPD::paint(QPainter* painter,
const QStyleOptionViewItem& option,
const QModelIndex& index) const
{
painter->save();
// Paint check box.
QStyleOptionSpinBox spOpt;
spOpt.palette = option.palette;
spOpt.rect = option.rect;
spOpt.state = option.state;
spOpt.frame = true;
spOpt.stepEnabled = QAbstractSpinBox::StepUpEnabled |
QAbstractSpinBox::StepDownEnabled;
style->drawComplexControl(QStyle::CC_SpinBox, &spOpt, painter);
painter->restore();
}
К сожалению, это выглядит как:
Как вы можете видеть кнопки шага рисуется массивной и появляется только стрелка вниз. Интересно, что ширина кнопок совпадает с шириной кнопок первого столбца таблицы, несмотря на то, что option.rect
является размером ячейки (что верно, что, по-видимому, связано с тем, что кадр правильно рисуется).
Любые идеи, какую информацию я не даю QStyle
?