如何排序QTableWidget列值?

时间:2018-05-08 06:21:12

标签: python pyqt pyqt5 qtablewidget

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

这是我的Qt 5.10脚本,here

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

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

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

QTableWidget.setSortingEnabled(True)

1 个答案:

答案 0 :(得分: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()