当我改变一个单元格中的值时,我试图让我的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) 我的问题是,我一进入单元格,它就会立即调用函数,甚至在我对单元格进行值更改之前。出于某种奇怪的原因,它还会调用该函数两次。
发布于 2012-06-26 09:23:22
我想你用错了信号。currentItemChanged是指选择。不适用于数据发生更改的情况。尝试使用itemChanged
self.table.itemChanged.connect(someFunc) 还要注意的是,我使用的是Qt4.5中引入的new-style signal slots。您不必再为指定C++签名而烦恼了。
至于你的信号触发了多次,这要么是因为每次选择发生变化时它都会触发,而你没有意识到这一点,要么是你设法将其连接了不止一次。
作为参考,用于连接此信号的旧样式语法为:
QtCore.QObject.connect(
self.table,
QtCore.SIGNAL('itemChanged(QTableWidgetItem*)'),
someFunc
) https://stackoverflow.com/questions/11199489
复制相似问题