0

我正在开发一个使用 QT5.0 和 QT 新手的应用程序。糟糕的是,我没有太多时间来学习漫长的学习曲线。我已经派生了自己的 TableModel 并将其设置为可编辑的 TableView。TableView 显示模型的数据,它有效。但是当我在表格视图上激活一个单元格时,数据就会消失。我查看了文档,发现 QTableView 是从 QAbstractItemView 类派生的,该类有一个名为“激活”的信号和一个名为“编辑”的插槽。所以,我认为“激活”信号连接到“编辑”插槽。但是“编辑”不是虚拟的,所以我不能覆盖它。我可以将我的子类连接到父母的“激活”信号,但实际上我不知道如何处理这个信号以保存 TableView 对象的当前数据。如果代码使用 SqlTableModel 是没有问题的。

4

1 回答 1

3

检查您的数据功能:

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角色。

祝你好运!

于 2013-03-02T11:57:25.427 回答