有没有一种方法可以在鼠标指针下获取行号?我想删除行而不知道行号,而只是光标位置。
编辑:
在此图像中,您可以为资产库添加项目。单击删除箱后,应删除该行。最好的方法是在单击bin时查询鼠标指针下的ROW号。行号解析到removeRow函数的位置。我不知道该如何利用QPointer。并且cellEntered需要的行/列值在添加或删除新行时不会保持不变。
有许多方法可以解决此问题。有些可能涉及光标位置,而另一些可能会涉及到表中的事件和信号。使用QCursor解决此问题的原因是,如果有人用键盘而不是单击鼠标来触发按钮,这意味着光标位置可能无法反映正确的行。
由于您已经在使用高级QTableWidget
,因此这是一种非常简单的方法:
from functools import partial
class Table(QtGui.QWidget):
def __init__(self):
super(Table, self).__init__()
self.table = QtGui.QTableWidget(3, 2, self)
for row in xrange(3):
item = QtGui.QTableWidgetItem("Item %d" % row)
self.table.setItem(row, 0, item)
button = QtGui.QPushButton("X", self.table)
self.table.setCellWidget(row, 1, button)
button.clicked.connect(partial(self._buttonItemClicked, item))
layout = QtGui.QHBoxLayout(self)
layout.addWidget(self.table)
def _buttonItemClicked(self, item):
print "Button clicked at row", item.row()
在此示例中,我们仅将第一列的项目烘烤到单击的回调中,因此当您单击它们时,它们具有询问行号的参考。对于较低级别的模型/视图,该方法将有所不同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句