楼主,的确像你所说的没有效果。
不过调换一下代码的调用顺序,把父类QListViewItem::paintCell( p, cg, column, width, align );的调用放在前面就可以了
另外,边框绘制,用drawRect也许不能达到最佳效果,你可以使用drawLine()方法
得到你想要得结果
派生出自己的MyListViewItem类,并重写其paintCell成员函数。
.h文件
class MyListViewItem : public QListViewItem
{
void paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align )
}
.cpp文件
void MyListViewItem::paintCell( QPainter *p, const QColorGroup &cg, int column, int width, int align )
{
QListViewItem::paintCell( p, cg, column, width, align ); //调用父类方法,实现实际文本或
//者图标内容的绘制
p.save(); //保存qpainter设置
p.setBrush( Qt::NoBrush ); //设置填充背景颜色,此处设置为不填充背景
p.setPen( Qt::black ); //设置边框线颜色
p.drawRect( 0, 0, width, height() ); //绘制边框线
p.restore(); //恢复qpainter设置
}