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