Python QTableWidget 按数值或字符排序
很多人发现QTableWidget 中的排序很不科学,比如列排序的一列数101、35、2、87、5、779,排序出来变成了101、2、35、5、779、87。这是因为QTableWidget 是按照string类型进行排序的,在字符串中1是比2小的。因此为了避免这种现象,采用下面的策略,自动区分是数值类型还是字符类型。
nameItem = QtGui.QTableWidgetItem()
if type(item)==int://item为输入的类型。
nameItem.setData(QtCore.Qt.DisplayRole,item)
else:
nameItem.setText(item)
self.table.setItem(self.__current_line,col, nameItem)
del nameItem //不要忘了释放内存