QTableView單元格編輯:如何雙擊之后內容處於被選中狀態


使用QTableView單元格編輯功能時,遇到了以下問題:

重載Qt::ItemFlags flag(const QModelIndex & index) const函數,來指定單元格屬性為可編輯狀態,

Qt::ItemFlags dataModel::flags(const QModelIndex& index) const
{
    return Qt::ItemIsEditable | QAbstractTableModel::flags(index);
}

結果為,雙擊可編輯,但單元格內容置空,未修改退出編輯狀態,內容變為0。

應該這樣修改,即可雙擊單元格進入編輯狀態,內容處於被選中狀態,

QVariant dataModel::data(const QModelIndex &index, int role) const
{
    if (!index.isValid())
        return QVariant();

    if (role == Qt::TextAlignmentRole)
    {
        return int(Qt::AlignRight | Qt::AlignVCenter);
    }
    else if (role == Qt::DisplayRole  || role == Qt::EditRole)  //就是這個地方
    {
        switch ( index.column() )
        {
            //to do ...
        }
    }

    return QVariant();
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM