如题,在项目中,要在
QTableView里的某一列插入某个
图标,我写模型的代码如下:
- QVariant SmartModel::data(const QModelIndex &index, int role) const
 - {
 -     if(!index.isValid())
 -         return false;
 -     if(index.row() >= rowCount() || index.row() < 0 || index.column() >= columnCount() || index.column() < 0)
 -         return false;
 -     switch(role)
 -     {
 -     case Qt::DisplayRole:
 -     {
 -         if(index.column() == 0) //ID
 -             return QVariant(m_recordList[index.row()].strIdx);
 -         if(index.column() == 2) //Description
 -             return QVariant(m_recordList[index.row()].strDescrition);
 -         if(index.column() == 3) 
 -             return QVariant(m_recordList[index.row()].strCurrentValue);
 -         if(index.column() == 4) 
 -             return QVariant(m_recordList[index.row()].strWorstValue);
 -         if(index.column() == 5) 
 -             return QVariant(m_recordList[index.row()].strThreshold);
 -         if(index.column() == 6) 
 -             return QVariant(m_recordList[index.row()].strRawValue);
 -     }
 -     case Qt::TextAlignmentRole:
 -     {
 -         return QVariant(Qt::AlignHCenter | Qt::AlignVCenter);
 -     }
 -     case Qt::DecorationRole:
 -     {
 -         if(index.column() == 1) //Status
 -         {
 - #if 0
 -             QString strStatus = m_recordList[index.row()].strStatus;
 -             if(strStatus.toInt() == 1)
 -                 return QVariant(QIcon(":/image/GooderCircle16.png"));
 -             else if(strStatus.toInt() == 2)
 -                 return QVariant(QIcon(":/image/NormalCircle16.png"));
 -             else if(strStatus.toInt() == 3)
 -                 return QVariant(QIcon(":/image/DangerCircle16.png"));
 -             else
 -                 return QVariant(QIcon(""));
 - #else
 -             return QVariant();
 - #endif
 -         }
 -     }
 -         break;
 -     default:
 -         return QVariant();
 -     }
 -     return QVariant();
 - }
 
 问题:在插入图标的第一列,莫名其妙的出现一个数字132,我明明在模型里Qt::DecorationRole添加的是图标,但是它却
显示图标加上132这个数字。为了弄清楚132这个数字是怎么插入第一列的,我把Qt::DecorationRole判断第一列的代码注释了,然后直接返回一个空的QVariant。结果,在第一列上还是会插入132.各位大佬,请问这是为啥呢?我明明
没有赋值132或在模型里的第一列插入132,它会显示在我写的QTableView的第一列中。我定位分析了很久,没有找到问题出在哪里。请各位大佬帮忙看看,有什么办法可以解决这个问题吗?欢迎各位大佬指点,小弟感激不尽!!!