您的位置:首页 > 数据库

解决QSqlTableModel::setData()崩溃的问题

2011-05-14 14:59 567 查看
最近在用QTableView+QSqlTableModel+QSortFilterProxyModel写一个表格:

MySqlTableModel *sourceModel = new MySqlTableModel;
MySortFilterProxyModel *proxyModel = new MySortFilterProxyModel;
MyTableView *view = new MyTableView;

proxyModel->setSourceModel(sourceModel);
view->setModel(proxyModel);
解决方案:在类MySortFilterProxyModel中重载函数setData():

MySqlTableModel *model = static_cast<MySqlTableModel *>(this->sourceModel());
if(model){
QModelIndex tmp = this->mapToSource(index);
//重要,model->index()
return model->setData(model->index(tmp.row(),tmp.column()), value, role);
}
return QSortFilterProxyModel::setData(index, value, role);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息