有一些类似的帖子,其中接受的解决方案涉及利用自定义代表。好吧,我已经将QStyledItemDelegate子类化并覆盖了paint函数。然后,我适当地设置了委托。这是油漆覆盖代码:
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
QStyleOptionViewItem opt = option;
opt.decorationAlignment = Qt::AlignCenter;
QStyledItemDelegate::paint(painter, opt, index);
}
不幸的是,这并不会使我的图标水平居中。有趣的是,将opt.decorationPosition
设置为枚举值Top
或Bottom
确实允许水平对齐,但我不希望这样定位。
那么,我如何在视图中水平居中这些图标呢?
编辑:
我最终手动绘制了图标,就像问题顶部链接的解决方案一样。我正在寻找一种更方便的方法,但这样做会很好。