• 4861阅读
  • 4回复

设置qtableview某列只读 [复制链接]

上一主题 下一主题
离线zheguzai
 

只看楼主 倒序阅读 楼主  发表于: 2013-10-23
如题:设置qtableview某列只读


tabview中有好几列,但是我想让其中的几列不能被修改,设为只读,找了好久都不行,
只有全部设置成只读的
tableView->setEditTriggers(QAbstractItemView::NoEditTriggers);


大家还有其他方法么?
离线alexltr

只看该作者 1楼 发表于: 2013-10-23
重新实现Model的flags()
我不从事IT,只是喜欢Qt。
我不是程序员,只是与程序有缘。
我写程序,只是为了让工作变得简单有序!

                      ----  一个一直在入门的编程学习者
离线zheguzai

只看该作者 2楼 发表于: 2013-11-20
给大家看看我实现之后的,重新定义一个类继承QsqlTableModel,当然其他的model也是可以的
重写flags函数,直接贴代码了

  1. Qt::ItemFlags MyTableModel::flags(const QModelIndex &index) const
  2. {
  3.        if (index.column() < 3)
  4.            return Qt::ItemIsUserCheckable | Qt::ItemIsEnabled | Qt::ItemIsSelectable ;
  5.        else
  6.            return Qt::ItemIsSelectable | Qt::ItemIsEditable | Qt::ItemIsEnabled;
  7. }




可以对想要的列进行编辑,只读或全部编辑,可以配合siwtch...case使用



离线z55716368

只看该作者 3楼 发表于: 2015-05-08
回 zheguzai 的帖子
zheguzai:给大家看看我实现之后的,重新定义一个类继承QsqlTableModel,当然其他的model也是可以的
重写flags函数,直接贴代码了
Qt::ItemFlags MyTableModel::flags(const QModelIndex &index) const
{
....... (2013-11-20 10:00) 

因为才开始用Qt 你这个不是太懂 是什么意思呢
我只想要某列可以被编辑要怎么做?
每一个问题 都是一次进步
离线weiweiqiao

只看该作者 4楼 发表于: 2015-05-09
你的code中是要大于第三列就可以editable么???那你小于第三列的直接调用父类方法就可以了。
Jobs Insanely Great.
快速回复
限100 字节
 
上一个 下一个