【问题标题】:How to sort QTableWidget column values? [duplicate]如何对 QTableWidget 列值进行排序? [复制]
【发布时间】:2018-10-18 00:32:41
【问题描述】:

我想在单击右侧的“Çiz”按钮时使用python代码对特定列中的值进行排序。但是,如果数字是双倍或更多,它会根据第一个元素进行排序。我意识到它接受值作为字符串。我在网站上看了很多问题,没有答案。我不想写脚本,必须有一个排序的解决方案,因为它看起来很容易。

这是我的 Qt 5.10 脚本,here

这是我的脚本 - 我写了 0 用于根据第一列进行排序:

QTableWidget.sortItems(0, QtCore.Qt.AscendingOrder)

但它接受值作为字符串而不是数字值。实际上,当用户单击标题时有一个脚本对值进行排序,但我不想让用户单击标题:

QTableWidget.setSortingEnabled(True)

【问题讨论】:

  • 在此示例中,它会自动添加值和另外 2 列。我只有两列,我想根据第一列排序,其他列也应该受到影响。

标签: python pyqt pyqt5 qtablewidget


【解决方案1】:

感谢 Gary Hughes 和 here answer for my solution.,我终于找到了解决方案

我举了一个简单的例子来尝试:

mywidget = QTableWidget()
mywidget .insertColumn(0)
mywidget .insertColumn(1)
list1 = [25,1,7]
list2 = [3,15,1]
for num in range(len(list1)):
    mywidget.insertRow(num)
    item = QTableWidgetItem()
    item.setData(Qt.EditRole, list1[num])
    mywidget.setItem(num, 0, item)
    mywidget.setItem(num, 1, QTableWidgetItem(str(list2[num])))
mywidget.sortItems(0, QtCore.Qt.AscendingOrder)
mywidget.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-29
    • 1970-01-01
    • 2021-06-26
    • 2023-03-27
    • 1970-01-01
    • 2016-01-26
    • 1970-01-01
    相关资源
    最近更新 更多