美文网首页
QTableView,QStandardItemModel中对数

QTableView,QStandardItemModel中对数

作者: 傑jay | 来源:发表于2020-02-13 23:15 被阅读0次

    在QT中为了通过表格展示数据时,通常采用QTableView组件来展示。
    常用的表格储存方式就是通过QStandardItemModel来进行存储

    代码示例如下:

    self.model=QStandardItemModel()
    self.tableView.setModel(self.model)
    ...
    self.model.setItem(0,0,QStandardItem(item.text()))#通过改变model中的值来改变QTableWidget中展示的表格
    

    而如果要对表格的某列按照降序(或升序)排列时,代码如下:

    self.tableView.sortByColumn(0,Qt.DescendingOrder) 
    或
    self.model.sort(0,Qt.DescendingOrder)  #升序Qt.AscendingOrder 
    

    即无论对model还是对tableview进行排序均能得到效果。

    但是对数值进行排序是则会产生问题,例如:

    某列数值{1,2,3...,99}进行降序排序,排序结果则为
    {99,98,97......91,90,9,89....,11,10,1}
    

    其根本原因在于setItem函数输入的数据只能是字符串类型,因此在排序时将会把数值当做字符串进行排序

    如何在输入函数值时保留原始数据的属性从而使得排序正常呢?
    可以使用setData函数

    item =QStandardItem()
    item.setData(number_data,Qt.DisplayRole) #将number_data替换为数值即可
    self.model.setItem(0,0,item)
    

    相关文章

      网友评论

          本文标题:QTableView,QStandardItemModel中对数

          本文链接:https://www.haomeiwen.com/subject/xusrfhtx.html