gpt4 book ai didi

python - 多个单元格的 PySide QTableView setData

转载 作者:太空宇宙 更新时间:2023-11-04 03:01:26 25 4
gpt4 key购买 nike

我正在使用 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)

最佳答案

closeEditor 信号中的 editor 是用于编辑的小部件。

如果是,例如 QLineEdit,您可以通过其 text 属性读取它的文本。

检索属性值的一种方法是通过 QObject 的属性 API

value = editor.property("text")

关于python - 多个单元格的 PySide QTableView setData,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40782020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com