繁体   English   中英

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

[英]How to get selected header label from QTableWidget item?

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

我尝试了QTableWidget.selectionModel().selectedIndexes()QTableWidget.itemFromIndex()方法。 我只能获取表格内的项目而不是标题标签。

这是我的桌子。 我可以在“产品编号”、“产品选项”和“标价(美元)”标题下获取项目,但我无法获取这些标题。

您可以将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()并获取单元格列。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM