如何知道QTableWidget中的QPushButton

时间:2013-11-12 21:43:06

标签: qt pyqt qtablewidget

对不起,我知道之前已经提出了这个问题,但是,我真的无法为我找到解决方案。

我的情况非常基本:我有一个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)

我知道这是错的或者缺少一些线条,但我尝试了很多解决方案。 谢谢 问候 艾蒂安

1 个答案:

答案 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)