Mus*_*çar 3 python pyqt qtablewidget pyqt5
 当我单击右侧的“Çiz”按钮时,我想使用 python 代码对特定列中的值进行排序。但是,如果数字是双倍或更多,它会根据第一个元素进行排序。我意识到它接受字符串形式的值。我在网站上看了很多问题,没有答案。不想写脚本,排序肯定有办法,因为看起来好简单。
当我单击右侧的“Çiz”按钮时,我想使用 python 代码对特定列中的值进行排序。但是,如果数字是双倍或更多,它会根据第一个元素进行排序。我意识到它接受字符串形式的值。我在网站上看了很多问题,没有答案。不想写脚本,排序肯定有办法,因为看起来好简单。
这是我从 Qt 5.10 开始的脚本,这里。
这是我的脚本 - 我写了 0 用于根据第一列进行排序:
QTableWidget.sortItems(0, QtCore.Qt.AscendingOrder)
但它接受值作为字符串而不是数字值。实际上,当用户单击标题时有一个脚本对值进行排序,但我不想让用户单击标题:
QTableWidget.setSortingEnabled(True)
最后,感谢 Gary Hughes,我找到了解决方案,这里是我的解决方案的答案。
我举了一个简单的例子来尝试:
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()