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

Python 如何从QTableWidget项获取选定的标题标签?,python,pyqt,pyqt5,qtablewidget,Python,Pyqt,Pyqt5,Qtablewidget,我有一个QTableWidget项。我用熊猫DataFrame数据填充此项。我必须将所选列值打印为报告。我可以很容易地从DataFrame打印数据。但是,我需要知道verticalHeader(QTableWidget)标签才能从“DataFrame”获取数据。如何从QTableWidget获取选定的标题标签 我尝试了QTableWidget.selectionModel().selectedIndex()和QTableWidget.itemFromIndex()方法。我只能获取表中的项目,而不

我有一个
QTableWidget
项。我用熊猫
DataFrame
数据填充此项。我必须将所选列值打印为报告。我可以很容易地从DataFrame打印数据。但是,我需要知道
verticalHeader
QTableWidget
)标签才能从“DataFrame”获取数据。如何从
QTableWidget
获取选定的标题标签

我尝试了
QTableWidget.selectionModel().selectedIndex()
QTableWidget.itemFromIndex()
方法。我只能获取表中的项目,而不能获取标题标签

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


您可以对表的当前行使用
QTableWidget.verticalHeaderItem()
。如果所选单元格都在同一行中,则可以执行此操作(
table
指QTableWidget)

或者,如果在多行上选择了单元格:

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]
如果行不包含垂直标题项,请仅在检查返回的项是否为无后使用
text()
方法

headers = [table.verticalHeaderItem(r) for r in rows]
labels = [x.text() for x in headers if x is not None]

编辑:这些是水平标题项,而不是垂直标题项。在这种情况下,请改用
table.horizontalHeaderItem()
并获取单元格列。

AttributeError:“非类型”对象没有属性“文本”。@Ugurcan这可能是因为特定行中没有垂直标题。我编辑了答案谢谢。我是PyQT和QT的新手。成功了。''columns=set(cell.column()表示self.table.selectedIndex()中的单元格)#设置为删除重复项,否则使用列表标签=[self.table.horizontalHeaderItem(c).text()表示列中的c]'
headers = [table.verticalHeaderItem(r) for r in rows]
labels = [x.text() for x in headers if x is not None]