Ugu*_*can 4 python pyqt qtablewidget pyqt5
我有一个QTableWidget项目。我用 pandas 数据填充这个项目DataFrame。我必须将选定的列值打印为报告。我可以轻松地从 DataFrame 打印数据。但是,我需要知道verticalHeader( QTableWidget) 标签才能从“DataFrame”获取数据。如何从中获取选定的标题标签QTableWidget?
我尝试QTableWidget.selectionModel().selectedIndexes()了QTableWidget.itemFromIndex()方法。我只能获取表格内的项目,而不能获取标题标签。
这是我的桌子。我可以获取“产品编号”、“产品选项”和“标价(美元)”标题下的商品,但无法获取这些标题。

您可以QTableWidget.verticalHeaderItem()与表的当前行一起使用。如果选定的单元格都在同一行,您可以这样做(table指的是 QTableWidget)。
row = table.currentRow()
label = table.verticalHeaderItem(row).text()
Run Code Online (Sandbox Code Playgroud)
或者,如果在多行上选择单元格:
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]
Run Code Online (Sandbox Code Playgroud)
如果行不包含垂直标题项,请text()仅在检查返回的项不是 None 后才使用该方法。
headers = [table.verticalHeaderItem(r) for r in rows]
labels = [x.text() for x in headers if x is not None]
Run Code Online (Sandbox Code Playgroud)
编辑:这些是水平标题项,而不是垂直标题项。在这种情况下,请使用table.horizontalHeaderItem()并获取单元格列。
| 归档时间: |
|
| 查看次数: |
9104 次 |
| 最近记录: |