QTableWidg中嵌入的复选框发出的信号

2024-10-01 13:35:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我目前有一个设置,我试图在QTableWidget中嵌入复选框。我按以下方式设置复选框单元格:

chkbox1 = QTableWidgetItem()
chkbox1.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
chkbox1.setCheckState(Qt.Unchecked)
chkbox2 = QTableWidgetItem()
chkbox2.setFlags(Qt.ItemIsUserCheckable | Qt.ItemIsEnabled)
chkbox2.setCheckState(Qt.Unchecked)
self.tblData.setItem(i, 0, chkbox1)
self.tblData.setItem(i, 1, chkbox2)

这似乎工作得很好,但我似乎无法捕捉到每当选中或取消选中一个框时发出的信号。我试过:

^{pr2}$

但这没用。作为一个测试,我将一个按钮点击连接到相同的方法,它工作得很好,所以我知道我只是错过了一个信号。在

据我所知,itemChanged应该在任何数据更改时发出,并且更改复选框状态是否会更改数据?在

提前谢谢你的帮助。在


Tags: 数据self信号qt复选框setitemqtablewidgetitemsetflags
2条回答

信号签名错误。它应该是itemChanged(QTableWidgetItem *)(注意*):

self.connect(self.tblData, SIGNAL('itemChanged(QTableWidgetItem *)'), self.updatePlot)

或者更好,使用the new style connections

^{pr2}$

我想你应该使用ItemClicked信号。因为itemChanged信号是在数据改变时发出的,而data可能是文本。在

相关问题 更多 >