[我使用PyQt4的,但我认为这Qt4的问题没有具体的Python]
我有一个QTableWidget
。 在每一行中,第一列包含一个按钮。 点击后,该行被删除。
以删除该行中,我使用removeRow(int row)
方法,它接受作为参数的行的索引。 当连接信号,我不知道该行的索引,因为它可能会在此期间发生变化(如果第一行被删除,例如,所有的行索引改变)。
这里接受的答案表明,从这个项目通过回调QTableWidgetItem的一个实例,在该行,然后获取行号在删除时间。
这将是很好的,除了没有该行的元素是QTableWidgetItem
。 元素是按钮本身和一些组合框。
我想不出解决的办法。
我能以某种方式适合我的元素融入到一个QTableWidgetItem之一? 我应该在某种隐藏的列中添加QTableWidgetItem?
我们当前实现使用indexAt(QtGui.qApp.focusWidget())
看到问题上面提到的其他答案),它看起来像一个抱歉的变通方法给我。
如果我有一个可检查的QTableWidgetItem这样更换按钮
rm_item = QtGui.QTableWidgetItem()
rm_item.setFlags(QtCore.Qt.ItemIsUserCheckable |
QtCore.Qt.ItemIsEnabled)
我有一个QTableWidgetItem我可以用它来找回行索引。 但我不知道如何捕捉“检查”或从“点击”事件就像我与按钮做。 所有我发现是itemClicked
的信号QTableWidget
,但后来我不得不所有其他部件过滤掉。
必须有明显的东西我失踪。
编辑
从我读这里 ,我可以setCellWidget同一小区的同时添加与setItem QTableWidgetItem和一个按钮控件。 这似乎不那么自然的我,但显然它的工作原理(现在不能测试)。
我想我会做到这一点。 添加按钮,再加上在同一小区的虚拟QTableWidgetItem传递作为该行的引用。
这是它是如何意思是什么?
编辑2
或者,也许QTableWidget
不正确的Widget,我应该使用一个Layout
,如建议在这里 。