对不起,我知道之前已经提出了这个问题,但是,我真的无法为我找到解决方案。
我的情况非常基本:我有一个tableview,每行都有一些QPushButtons。我很难知道哪个按钮被点击了。
我读过有关Mappers的内容,但是它不起作用。 Eclipse不高兴,例外,......
signalMapper = QSignalMapper()
for row,dossier in enumerate(Dossier.listeDossiers):
button = QPushButton("Archive")
signalMapper.setMapping(button, row)
QObject.connect(button, SIGNAL("clicked()"), signalMapper, SLOT("map()"))
self.dlg.ui.tableWidget_dossiers.setCellWidget(row, 5, button)
def getArchive(self,row):
print "Row " + str(row)
我知道这是错的或者缺少一些线条,但我尝试了很多解决方案。 谢谢 问候 艾蒂安
答案 0 :(得分:1)
使用QButtonGroup:
self.buttonGroup = QtGui.QButtonGroup(self)
self.buttonGroup.buttonClicked[int].connect(self.getArchive)
for row, dossier in enumerate(Dossier.listeDossiers):
button = QPushButton("Archive")
self.buttonGroup.addButton(button, row)
self.dlg.ui.tableWidget_dossiers.setCellWidget(row, 5, button)
def getArchive(self, row):
print "Row " + str(row)