如何判断 QTableWidgetItem 何时被修改

How to tell when a QTableWidgetItem is being modified

我正在 Python 中使用 PySide 库编写一个应用程序。我有一个 QTableWidget 大约每秒更新一次。问题是,我希望能够手动更改数据,并且我认为如果我能查明用户是否正在更改单元格中的数据,那么我就可以阻止程序更新此单元格。否则,每次更新时我都会得到 "kicked out" 个单元格。

非常感谢


编辑:

我知道存在 itemChanged 信号,但我真正想知道的是是否有办法告诉 用户何时在单元格中写入新值,以免在编辑时被踢出

在 Qt 文档中:

void QTableWidget::itemChanged(QTableWidgetItem * item)
只要项目的数据发生变化,就会发出此信号。

希望对您有所帮助。

编辑:

QTableWidget 使用默认的 itemdelegate(QItemDelegate 实例),它具有 createEditor 方法和 closeEditor 信号。

你可以重新实现createEditor表示编辑开始,接信号closeEditor表示编辑结束

这可能是正确的方法。

通常,您可以使用 QItemDelegates 来处理这种情况,它允许您控制用户可以编辑哪些单元格,table 他们可以使用哪些类型的控件来编辑单元格,您可以捕获它们输入的数据并在将其保存到模型之前对其进行验证或操作。

QItemDelegates 仅控制使用视图界面进行的编辑。如果 table 以编程方式更新,更改将不会发送到 QItemDelegate

一个 QItemDelegate 一个 QTableWidget