如何将唯一的id/对象与TableWidget行/单元格相关联



我有一个填充的TableWidget,我想知道用户选择了哪一行。通常我会使用

tableWidget.doubleClicked.connect(self.table_instruments_doubleclicked) 
def table_instruments_doubleclicked(self,line):
    name = self.tableWidget.item(line.row(),0).text()

以获得所选的行号,但我有一个可排序的表,所以我想行索引是混合的。有没有一种方法可以为每一行分配一个唯一的索引(或者更好的是一个python对象),这样当用户选择一行时,我就可以取回我自己的id/对象?

对于表小部件,使用基于项目的信号:

tableWidget.itemDoubleClicked.connect(self.table_instruments_doubleclicked) 
def table_instruments_doubleclicked(self, item):
    name = item.text()

最后我发现一个数据段可以分配到表的每个单元格中:

object = new_object()
tableitem_date = QTableWidgetItem()
tableitem_date.setText("Content to add")
tableitem_date.setData(1,object)

然后你可以简单地准备好存储的对象

def table_instruments_doubleclicked(self,line):
    name = self.tableWidget.item(line.row(),0).data(1)

最新更新