【发布时间】:2013-02-25 04:57:46
【问题描述】:
我目前正在实现一个自定义委托,其中一部分我需要在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?
【问题讨论】:
标签: c++ qt model-view-controller qt4.8 qstyle