代码之家  ›  专栏  ›  技术社区  ›  Mustafa Uçar

如何对QTableWidget列值进行排序?[副本]

  •  5
  • Mustafa Uçar  · 技术社区  · 6 年前

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

    这是我的Qt 5.10脚本, here

    这是我的脚本-我编写了0,以便根据第一列进行排序:

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

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

    QTableWidget.setSortingEnabled(True)
    
    1 回复  |  直到 6 年前
        1
  •  8
  •   Mustafa Uçar    6 年前

    多亏加里·休斯和 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()