我有一个带表格的小程序,表格中包含一些数据和每行都有一个按钮。这些按钮应该允许用户删除相应的行数据。我试图通过 clicked
按钮信号来实现它,但我需要传递行号,所以我尝试使用 QSignalMapper
,如下面的摘录所示。
btnRemoveItem = QPushButton()
btnRemoveItem.clicked.connect(self.removeItem)
self.mapper = QSignalMapper(self)
self.connect(btnRemoveItem, QtCore.SIGNAL("clicked()"), self.mapper,
QtCore.SLOT("map()"))
self.mapper.setMapping(btnRemoveItem, nextRow)
self.connect(self.mapper, QtCore.SIGNAL("mapped(int)"), self.removeItem(),
QtCore.SIGNAL("clicked(int)"))
问题是,我的
removeItem(self, index)
方法是一个实例方法(因为我的表格属于特定的类),我很难以一种可以同时传递self
和index
的方式进行映射。目前,我的代码会出现以下错误:
TypeError: removeItem() takes exactly 2 arguments (1 given)
有没有办法让这个正确工作?或者用PySide无法映射实例方法与?