我想知道在QTableWidget中对十六进制数字排序的最佳方法。在
目前我所做的是转换所有的十六进制值,然后对其进行排序(升序/降序)。但我的问题是我确实把它转换成了十进制。表中显示的数值是十进制的。我想在不改变表中显示的值的情况下对十六进制进行排序
以下是我当前的实现:from PySide2.QtCore import Qt
from PySide2.QtWidgets import QTableWidget
class NumericData(QTableWidgetItem):
def __lt__(self, other):
return (self.data(Qt.UserRole) < other.data(Qt.UserRole))
class Window(QTableWidget):
def __init__(self):
super(Window, self).__init__(4, 2)
for column, values in enumerate((
('ABCD', '1DCA', 'BD23', 'FFFFFFFF'),
(1,2,3,4)
)):
for row, value in enumerate(values):
if column == 0:
value = str(int(value, 16))
else:
value = str(value)
item = NumericData(value)
item.setData(Qt.UserRole, value)
self.setItem(row, column, item)
self.setSortingEnabled(True)
self.sortItems(0, Qt.AscendingOrder)
这是样品表
^{pr2}$