激活单元格后,QTableView单元格数据消失

时间:2013-01-24 14:51:28

标签: qt

我正在开发一个使用QT5.0的应用程序和QT的新应用程序。很糟糕的是,我没有太多的时间来进行长时间的学习。 我已经派生了自己的TableModel并将其设置为可编辑的TableView。 TableView显示模型的数据,它的工作原理。但是当我在tableview上激活一个单元格时,数据就会消失。我查看了文档,发现QTableView派生自QAbstractItemView类,它有一个名为'activated'的信号和一个名为'edit'的插槽。所以,我认为'激活'信号连接到'编辑'插槽。但'编辑'不是虚拟的,所以我无法覆盖它。我可以将我的子类连接到父项的“激活”信号,但实际上我不知道如何处理此信号以保存TableView对象的当前数据。 如果代码使用SqlTableModel,则没有问题。我认为它处理'激活'信号,但我不确定这些,只是猜测.. 这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

检查您的数据功能:

QVariant TableModel::data(const QModelIndex &index, int role) const
    if( !index.isValid() )
        return QVariant();       
    if( role == Qt::DisplayRole || role == Qt::EditRole) {
        return <your data>
    }
    return QVariant();
}

确保您处理EditRole角色。

祝你好运!