我目前正在实现一个自定义委托,其中一部分我需要QSpinBox
在方法中绘制paint(..)
。
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
?