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

最近在用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);

转载于:https://my.oschina.net/xiangxw/blog/16802

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值