【发布时间】:2016-11-24 09:08:48
【问题描述】:
我正在使用 QTableView 并子分类为 QAbstractTableModel。编辑单元格时,我注意到QAbstractTableModel.setData 只通过最后一个选定的单元格。有没有办法让setData 处理多个(选定的)单元格?
作为使用示例:
- 从表格中选择四个单元格。
- 开始编辑一个单元格。
- 输入一个值并按回车键提交。
- 让值修改所有四个单元格(目前它只修改最后选择的单元格)
我尝试对closeEditor 进行子类化,然后循环通过selectedIndexes 以使用setData 调用它们,但我不知道如何从closeEditor 获取用户的输入值。
这是我的尝试,差不多了,只需要输入值。
def closeEditor(self, editor, hint):
is_cancelled = (hint == QtGui.QAbstractItemDelegate.RevertModelCache)
if not is_cancelled:
for index in self.selectedIndexes():
if index == self.currentIndex():
continue
input_value = ??? # Don't know how to get this from here!
self.model().setData(index, input_value, QtCore.Qt.EditRole)
return QtGui.QTableWidget.closeEditor(self, editor, hint)
【问题讨论】:
标签: python qt pyside qtableview qabstracttablemodel