检测项目已更改 - QtTableWidget

时间:2015-04-02 18:32:20

标签: python qt pyqt

当用户手动更改QtTableWidget中的单元格值时,是否可以检测到这种情况?我使用了table.itemChanged.connect(func),但我认为itemChanged会检测到所有更改,因此我无法在功能func中重新填充表格。

当用户更改QtTableWidget项值时,程序运行重新填充整个表的方法(func)。问题是table.itemchanged会检测到所有更改,因此会返回错误:RuntimeError: maximum recursion depth exceeded while calling a Python object,因为func会生成许多itemChanged个信号。

1 个答案:

答案 0 :(得分:1)

您可以阻止功能中的信号。

func(...)
{
...
table.blockSignals(true);
// do your change here
table.blockSignals(false);
...
}

或使用较新的QSignalBlocker