如何在 sectionMoved 事件后确定 QTableWidget 中的新行顺序

How to determine the new order of rows in QTableWidget after sectionMoved event

我正在 PyQt5 中创建一个应用程序并有一个 QTableWidgetItem 我允许用户更改行的顺序:

tableWidget.verticalHeader().setSectionsMovable(True)

我已将 onSectionMoved 插槽连接到 sectionMoved 信号。如果我使用

遍历 onSectionMoved 内所有行中第一列的内容
for row in range(tableWidget.rowCount()):
    print(tableWidget.item(row, 0).text())

我仍在获取旧顺序中第一列的内容。如何获取新订单中的内容?

编辑

更明确地说:假设我有一个 table

A AA AAA
B BB BBB
C CC CCC

现在,用户将第一行移到第二行之后:

B BB BBB
A AA AAA
C CC CCC

我的问题是,在 onSectionMoved 内部迭代时,结果仍然是 A B C 而不是 B A C。

您必须翻译使用逻辑索引的行:

header = tableWidget.verticalHeader()
for row in range(tableWidget.rowCount()):
    print(tableWidget.item(header.logicalIndex(row), 0).text())