QTableWidget中嵌入式复选框发出的信号 [英] Signals Emitted by Embedded Checkbox in QTableWidget

查看:99
本文介绍了QTableWidget中嵌入式复选框发出的信号的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I currently have a setup where I am trying to embed checkboxes in a QTableWidget. I am setting the checkbox cells in the following way:

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)

这似乎工作正常,但是我似乎无法捕捉到选中或取消选中某个框时发出的信号.我试过了:

This seems to work fine, however I cannot seem to catch the signal emitted whenever a box is checked or unchecked. I've tried:

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

但这没有任何作用.作为测试,我已将按钮单击连接到相同的方法,并且它工作正常,所以我知道这只是我错过了一个信号.

But this doesn't do anything. As a test, I've connected a button click to the same method, and it works fine, so I know it's just that I'm missing a signal.

据我所知,itemChanged 应该在任何数据发生变化时发出,并且不会改变复选框状态来改变数据吗?

From what I understand, itemChanged should be emitted any time any data is changed, and isn't changing the checkbox state changing the data?

预先感谢您的帮助.

推荐答案

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

Signal signature is wrong. It should be itemChanged(QTableWidgetItem *) (Note the *):

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

或者更好,使用新样式连接:

self.tblData.itemChanged.connect(self.updatePlot)

这篇关于QTableWidget中嵌入式复选框发出的信号的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆