我正在重新实现paintEvent
QComboBox 和paint
委托,基于QStyledItemDelegate
. 问题出在我的代码上,文本被省略了,但背景的大小没有。可能是什么原因,哪个对象负责这个背景?
委托的paint
重新实现方法:
void myDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const
{
QStyleOptionViewItem opt = option;
initStyleOption(&opt, index);
opt.rect.setWidth(_parentComboRect->width());// gets parent's size
opt.textElideMode = Qt::ElideRight;
const QWidget *widget = opt.widget;
QStyle *style = widget ? widget->style() : QApplication::style();
style->drawControl(QStyle::CE_ItemViewItem, &opt, painter, widget);
}
有什么建议么?