我
没有采用 委托的办法,
继承了QSqlTableModel类,自己写的Model(从国外的一个网站获取的思路);
应该要重载setData函数,就不知道 怎么写……
#include "mymodel.h"
myModel::myModel(
QObject *parent)
{
aColWithCheckbox = 0;
}
Qt::ItemFlags myModel::flags(const QModelIndex &index) const {
Qt::ItemFlags flags = QSqlTableModel::flags(index);
if (index.column() == aColWithCheckbox)
flags |= Qt::ItemIsUserCheckable;
else
flags |= Qt::ItemIsEditable;
return flags;
}
QVariant myModel::data(const QModelIndex &index,int role) const
{
QVariant value = QSqlTableModel::data(index, role);
if (role == Qt::CheckStateRole && index.column() == aColWithCheckbox)
return (QSqlTableModel::data(index).toInt() != 0) ? Qt::Unchecked: Qt::Checked;
else
return value;
}上面是实现代码;下面是效果图: