PyQT - QTableWidget 在 dragged/moved 列后获得 header 标签
PyQT - QTableWidget get header labels after dragged/moved columns
我有一个 QTable 小部件,其中填充了来自 SQL 的数据 - 我启用了按
对视图中的列重新排序
self.horizontalHeader().setSectionsMovable(True)
为了给用户完美的体验,我创建了很多代码,用户可以通过两个带框的列表来决定他想看哪一列,一个显示 headers 已经在 table可见,另一方面,所有headers可能由SQL Table。用户可以左右切换列并使它们可见或不可见。用户还可以将列表中的元素上下放置,以对列中的 headers 重新排序。对于可见列列表,我必须在 Table 小部件中获得一个包含所有可见 headers 的列表 - 但我只有一个问题:
当用户拖动一个Header like "ID" 到第一个位置时
example
我想将所有 headers 作为 for 循环中的列表获取,
header = self.horizontalHeaderItem(column).text()
将“USERNAME”作为第一列(位置 0),将“ID”作为最后一列(位置 3)。还有
header = self.horizontalHeader().model().headerData(0,Qt.Orientation.Horizontal)
没有区别..
有人有想法吗?
您必须使用逻辑索引进行迭代
header = self.horizontalHeader()
for col in range(self.columnCount()):
print(self.horizontalHeaderItem(header.logicalIndex(col)).text())
我有一个 QTable 小部件,其中填充了来自 SQL 的数据 - 我启用了按
对视图中的列重新排序self.horizontalHeader().setSectionsMovable(True)
为了给用户完美的体验,我创建了很多代码,用户可以通过两个带框的列表来决定他想看哪一列,一个显示 headers 已经在 table可见,另一方面,所有headers可能由SQL Table。用户可以左右切换列并使它们可见或不可见。用户还可以将列表中的元素上下放置,以对列中的 headers 重新排序。对于可见列列表,我必须在 Table 小部件中获得一个包含所有可见 headers 的列表 - 但我只有一个问题: 当用户拖动一个Header like "ID" 到第一个位置时
example
我想将所有 headers 作为 for 循环中的列表获取,
header = self.horizontalHeaderItem(column).text()
将“USERNAME”作为第一列(位置 0),将“ID”作为最后一列(位置 3)。还有
header = self.horizontalHeader().model().headerData(0,Qt.Orientation.Horizontal)
没有区别..
有人有想法吗?
您必须使用逻辑索引进行迭代
header = self.horizontalHeader()
for col in range(self.columnCount()):
print(self.horizontalHeaderItem(header.logicalIndex(col)).text())