QStandardItem可以直接设置使用CheckBox,不过我是想用另外一种方法实现
定义了一个类class CustomTableModel : public QStandardItemModel,然后覆盖了flags方法:
Qt::ItemFlags CustomTableModel::flags(const QModelIndex &index) const
{
if(! index.isValid())
{
return 0;
}
Qt::ItemFlags flags = QStandardItemModel::flags(index);
int nColIndex = index.column();
if(nColIndex == 0)
{
flags |= Qt::ItemIsUserCheckable;
}
return flags;
}
再覆盖data方法,在其中判断:
case Qt::CheckStateRole:
{
if(nColIndex == 0)
{
return Qt::Checked;
}
return QStandardItemModel::data(index, role);
}
break;
现在可以正常显示CheckBox,但问题是这个CheckBox无法点击。据说需要再覆盖setData方法。请了解的朋友说明一下,多谢。