如何知道 QTableWidget 中的哪个 QPushButton
Posted
技术标签:
【中文标题】如何知道 QTableWidget 中的哪个 QPushButton【英文标题】:How to know which QPushButton in a QTableWidget 【发布时间】:2013-11-12 21:43:06 【问题描述】:对不起,我知道这个问题之前已经被问过了,但是,我真的无法为我找到解决方案。
我的情况非常基本:我有一个表格视图,并且在每一行中我都有一些 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)
我知道这是错误的或缺少某些行,但我尝试了很多解决方案。 谢谢 问候 艾蒂安
【问题讨论】:
你想知道在槽中点击了哪个按钮吗? 错误是什么?您的代码看起来是正确的,只是您可能希望连接到信号映射器的mapped()
信号之一以接收点击。
【参考方案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)
【讨论】:
以上是关于如何知道 QTableWidget 中的哪个 QPushButton的主要内容,如果未能解决你的问题,请参考以下文章
在 Python 中:一次将 QtableWidget 中的所有条目插入数据库表中