1

当我更改单元格中的值时,我试图让我的 QTableWidget 调用一些函数。

self.table = QtGui.QTableWidget()  
tableItem = QtGui.QTableWidgetItem( str(attr.GetValue()) )
self.table.setItem(row, 1, tableItem )
QtCore.QObject.connect(self.table, QtCore.SIGNAL('currentItemChanged(QTableWidgetItem*, QTableWidgetItem*)'), someFunc)  

我的问题是,在我对它进行值更改之前,它会在我进入单元格后立即调用该函数。由于某些奇怪的原因,它还两次调用该函数。

4

1 回答 1

4

我认为您使用了错误的信号。currentItemChanged指选择。不适用于数据更改时。尝试使用itemChanged

self.table.itemChanged.connect(someFunc) 

另请注意,我使用的是 Qt 4.5 中引入的新型信号槽。您不必再为指定 C++ 签名而烦恼。

至于您的信号多次触发,可能是因为每次选择更改时它都会触发而您没有意识到,或者您设法多次连接它。

作为参考,连接此信号的旧式语法是:

QtCore.QObject.connect(
    self.table, 
    QtCore.SIGNAL('itemChanged(QTableWidgetItem*)'), 
    someFunc
) 
于 2012-06-26T01:23:22.450 回答