当我更改单元格中的值时,我正试图让我的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)
我的问题是,在我进行单值更改之前,它会在我进入单元格后立即调用该函数。此外,由于一些奇怪的原因,它会调用该函数两次。
答案 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
)