2013-01-24 105 views
0

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

回答

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作用。

祝你好运!

相关问题