2015-04-02 77 views
0

当用户手动更改QtTableWidget中的单元格值时是否可以检测到情况?我使用table.itemChanged.connect(func),但我认为itemChanged检测到所有更改,因此我无法填充函数func中的表。已更改检测项目 - QtTableWidget

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

+0

您可以创建自己的委托('QItemDelegate')并处理那里使用的输入。 – 2015-04-02 21:18:27

回答

1

你可以阻止你的func中的信号。

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

或使用较新的QSignalBlocker