楼主,的确像你所说的没有效果。
不过调换一下代码的调用顺序,把父类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设置
}