我有一个QTableWidget
项目。我用熊猫DataFrame
数据填充了此项目。我必须将选定的列值打印为报告。我可以轻松地从DataFrame打印数据。但是,我需要知道verticalHeader
(QTableWidget
)标签才能从“ DataFrame”获取数据。如何从QTableWidget
获取选定的标题标签?
我尝试了QTableWidget.selectionModel().selectedIndexes()
和QTableWidget.itemFromIndex()
方法。我只能在表中获取项目,而不能在标题标签中获得
这是我的桌子。我可以在“产品编号”,“产品选择权”和“标价(USD)”标题下获得商品,但我无法获得这些标题。
答案 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()
并获取单元格列。