QTableWidget怎么实现某一行可编辑,其余行不可编辑?整行选中方式下,怎么使某一行为单个单元格选中?

时间:2022-04-15 19:36:30
我想实现的是:
表格是不可编辑的,且是整行选中的方式,我有一个新增按钮,点击这个按钮,表格新增一行,然后此行可编辑,可选中单个单元格

2 个解决方案

#1


只要设置tablewidget->setEnable(false),整个表格就不可编辑了,你这样要求的话不能用这个方法来设置。不可编辑的行创建时每个item都是不可编辑的item->setFlags(Qt::ItemIsEnabled),使用setSelectionBehavior(QAbstractItemView::SelectRows)设置行选中状态;点击按钮创建的行里面的item设置为可编辑item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable),这样前面的行都是不可编辑的,后面的后单元格都是可编辑的

#2


先设置表格可选中行,再使用事件过滤器,判断是否点击了指定行,是的,则放行继续处理,否则,直接 返回,不再继续往下交给系统处理。

#1


只要设置tablewidget->setEnable(false),整个表格就不可编辑了,你这样要求的话不能用这个方法来设置。不可编辑的行创建时每个item都是不可编辑的item->setFlags(Qt::ItemIsEnabled),使用setSelectionBehavior(QAbstractItemView::SelectRows)设置行选中状态;点击按钮创建的行里面的item设置为可编辑item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsEditable),这样前面的行都是不可编辑的,后面的后单元格都是可编辑的

#2


先设置表格可选中行,再使用事件过滤器,判断是否点击了指定行,是的,则放行继续处理,否则,直接 返回,不再继续往下交给系统处理。