如何从QTableWidget项目中获取选定的标题标签?

时间:2020-03-18 07:49:26

标签: python pyqt pyqt5 qtablewidget

我有一个QTableWidget项目。我用熊猫DataFrame数据填充了此项目。我必须将选定的列值打印为报告。我可以轻松地从DataFrame打印数据。但是,我需要知道verticalHeaderQTableWidget)标签才能从“ DataFrame”获取数据。如何从QTableWidget获取选定的标题标签?

我尝试了QTableWidget.selectionModel().selectedIndexes()QTableWidget.itemFromIndex()方法。我只能在表中获取项目,而不能在标题标签中获得

这是我的桌子。我可以在“产品编号”,“产品选择权”和“标价(USD)”标题下获得商品,但我无法获得这些标题。

1 个答案:

答案 0 :(得分:0)

您可以在表的当前行中使用QTableWidget.verticalHeaderItem()。如果所有选定的单元格都在同一行中,则可以执行此操作(table是指QTableWidget)。

row = table.currentRow()
label = table.verticalHeaderItem(row).text()

或者如果在多个行中选择了单元格:

rows = set(cell.row() for cell in table.selectedIndexes()) # set to remove duplicates, otherwise use a list
labels = [table.verticalHeaderItem(r).text() for r in rows]

如果某行不包含垂直标题项目,则只有在您检查返回的项目不是None时,才使用text()方法。

headers = [table.verticalHeaderItem(r) for r in rows]
labels = [x.text() for x in headers if x is not None]

编辑:这些是水平标头项目,而不是垂直标题。在这种情况下,请改用table.horizontalHeaderItem()并获取单元格列。