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

标签 python pyqt pyqt5 qtablewidget

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

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

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

最佳答案

您可以对表格的当前行使用 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.horizo​​ntalHeaderItem() 并获取单元格列。

关于python - 如何从 QTableWidget 项目中获取选定的标题标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60735357/

相关文章:

pyqt - 在QLabel中显示标准图标和文本

python - 为什么按下 PyQt 按钮时 matplotlib 的计时器会加速?

pyqt5 - 通过索引访问时,QTableWidget 拖/放行不会更改其位置

python - 如何将文件中具有相同值的所有行保存到文件中

python - aiohttp 中间件和更新请求的 url

python - PyQt 对 QTreeWidgetItem 的有效性检查

python - 如何在pyqt MessageBox中使用变量

python - Pytest - 从另一个装置调用一个装置

带有用户输入的 Python 3 单元测试

python - 如何让信号出现在QtDesigner中?