QTabelWidget有个信号cellDoubleClicked (int,int),应该将信号与你的槽(这是你的函数!)连接,改成这样:
self.tableWidget.cellDoubleClicked.connect(self.function)
这是使用新型的信号、槽连接方式,所以还要在定义你自己的槽的时候显式地用python修饰符:
@pyqtSlot(int,int)
def function(self,row,column):
............
如果是旧式连接,如果我没记错,大概应该是这样:
self.connect(self.tableWidget, QtCore.SIGNAL('itemDoubleClicked(int,int)'), self.function)
也就是说,Qt的原生槽是C++形式的,要引用它应该使用SIGNAL转换,并且把槽的C++声明作为字串传给型参!
==>你的错误在于:
1、C++的槽引用错误。
2、QTableWidget的cell和item概念不同。
一个item只有当创建并摆放到Table时才有效,而cell就是table上的那些格子。你把槽连到item上,可能在某个cell位置没有摆放item,所以双击是无效的——不过不会异常。