默认的排序方式 是讲所有的内容都当做 字符串的格式,而字符串的格式在排序数字的时候,是不准的。
比如:‘123' < '2' 这样的情况会出现。怎么解决呢?
data = QTableWidgetItem()
if type(tabe_tatas[i][j]) != str:
data.setData(Qt.DisplayRole, tabe_tatas[i][j])
data.setTextAlignment(Qt.AlignCenter)
tabe_name.setItem(i, j, data)
else:
data.setText(tabe_tatas[i][j])
data.setTextAlignment(Qt.AlignCenter)
tabe_name.setItem(i, j, data)
# 样式设计
data.setFont(QFont('微软雅黑', 10, QFont.Black))
data.setForeground(QBrush(QColor(190, 88, 0)))
data.setTextAlignment(Qt.AlignRight)
del data
用这样的形式去填充数据表格,就可以了。
这样填充的数据,就能按照数字的大小进行正确排序了。