• 5131阅读
  • 2回复

[提问]设置表格中的某一列不可编辑 [复制链接]

上一主题 下一主题
离线it小熊
 
只看楼主 倒序阅读 楼主  发表于: 2012-10-26
我用QSqlTableModel 设置模型,然后在QTableView 里面显示数据,现在想让某一列不可编辑。就是 双击 不能修改 表格中的值。
找了半天,没找到方法 。
求大虾 赐教啊。
苦逼 的 程序猿
离线it小熊
只看该作者 1楼 发表于: 2012-10-26
使用了QTableView 父类的 QAbstractItemView::NoEditTriggers 但是整个表格都不可编辑了
苦逼 的 程序猿
离线passion_wu
只看该作者 2楼 发表于: 2012-10-26
很简单,自己写一个类,继承QSqlTableModel 。只需要重写flags函数就可以了

Qt::ItemFlags MySqlTableModel ::flags ( const QModelIndex & index ) const
{
    if (!index.isValid())
           return Qt::NoItemFlags;
    if(index.column() == 0)      //suppose column 0 isn't eidtable;
            return QSqlTableModel ::flags(index);
     else
             return  QSqlTableModel ::flags(index) | Qt::ItemIsEditable;
}
快速回复
限100 字节
 
上一个 下一个