pyqt QTableWidgetItem连接信号

时间:2012-06-26 00:59:11

标签: pyqt

当我更改单元格中的值时,我正试图让我的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)  

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

1 个答案:

答案 0 :(得分:4)

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

self.table.itemChanged.connect(someFunc) 

另请注意,我使用的是Qt 4.5中引入的new-style signal slots。你不必再为指定C ++签名而烦恼了。

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

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

QtCore.QObject.connect(
    self.table, 
    QtCore.SIGNAL('itemChanged(QTableWidgetItem*)'), 
    someFunc
)