【问题标题】:How to determine the new order of rows in QTableWidget after sectionMoved event在sectionMoved事件之后如何确定QTableWidget中行的新顺序
【发布时间】:2017-05-16 01:31:34
【问题描述】:

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

tableWidget.verticalHeader().setSectionsMovable(True)

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

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

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

编辑

为了更明确:假设我有一张桌子

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。

【问题讨论】:

    标签: python qt pyqt5 qtablewidget


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-06
      • 1970-01-01
      • 2022-07-20
      • 1970-01-01
      • 1970-01-01
      • 2018-07-07
      • 1970-01-01
      相关资源
      最近更新 更多