2013-01-24 140 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作用。

祝你好運!

相關問題