[英]How to get selected header label from QTableWidget item?
I have a QTableWidget
item.我有一个QTableWidget
项目。 I fill this item with pandas DataFrame
data.我用DataFrame
数据填充了这个项目。 I must print selected column values as a report.我必须将选定的列值打印为报告。 I can easily print data from DataFrame.我可以轻松地从 DataFrame 打印数据。 However, I need to know verticalHeader
( QTableWidget
) labels to get data from 'DataFrame'.但是,我需要知道verticalHeader
( QTableWidget
) 标签才能从“DataFrame”获取数据。 How can I get selected header labels from QTableWidget
?如何从QTableWidget
获取选定的标题标签?
I tried QTableWidget.selectionModel().selectedIndexes()
and QTableWidget.itemFromIndex()
method.我尝试了QTableWidget.selectionModel().selectedIndexes()
和QTableWidget.itemFromIndex()
方法。 I could only get items inside of the table not header labels.我只能获取表格内的项目而不是标题标签。
Here is my table.这是我的桌子。 I can get items under 'Product No', 'Product Option' and 'List Price (USD)' headers but I can't get these headers.我可以在“产品编号”、“产品选项”和“标价(美元)”标题下获取项目,但我无法获取这些标题。
You can use QTableWidget.verticalHeaderItem()
with the table's current row.您可以将QTableWidget.verticalHeaderItem()
与表格的当前行一起使用。 If the selected cells are all in the same row, you could do this ( table
refers to the QTableWidget).如果选定的单元格都在同一行中,您可以这样做( table
指的是 QTableWidget)。
row = table.currentRow()
label = table.verticalHeaderItem(row).text()
Or if cells are selected over multiple rows:或者,如果在多行中选择单元格:
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]
In the case that a row does not contain a vertical header item, use the text()
method only after you've checked that item returned is not None.如果一行不包含垂直标题项,请仅在检查返回的项不是 None 后才使用text()
方法。
headers = [table.verticalHeaderItem(r) for r in rows]
labels = [x.text() for x in headers if x is not None]
Edit: Those are horizontal header items, not vertical.编辑:那些是水平标题项目,而不是垂直。 In that case use table.horizontalHeaderItem()
instead and get cell columns.在这种情况下,请改用table.horizontalHeaderItem()
并获取单元格列。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.