首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

tableView数据展示

2012-12-23 
tableView数据显示现在有一批数据,间隔几秒钟会显示在tableView中,显示的数据默认是从上往下显示的,也就是

tableView数据显示
现在有一批数据,间隔几秒钟会显示在tableView中,显示的数据默认是从上往下显示的,也就是最新显示的数据一直在最下面一行的,现在我想改成让最新显示的数据放在第一行,应该怎么弄的,找了半天没找到,知道是说下,谢谢!!
[最优解释]
遇到类似的问题,可以交流下么
[其他解释]
其实可以自己写算法来排序。
反正Model里面的数据都是你自己的。
变了以后 emit dadaChanged(QModelIndex...)这个信号。 view就会自动更新了。 
[其他解释]
我也是从串口采的数据,通过CAN模块,把采来的数据显示在不同的界面,当两个有数据的界面切换时会出现段错误,但是加个延时就可以正常切换,这样会降低刷新数据的速度,请问你知道有别的解决办法不
[其他解释]
你数据从新排下!
[其他解释]
你数据是怎么来的?  数据库读取?
[其他解释]
怎么排啊/
[其他解释]
已经搞定了,谢谢!!
我的数据是从串口读出来的,每个200毫秒就能读取一次数据,读到的数据添加到tabview中,


void Config::UpdataTabview(unsigned int lines, QString hex)
{
    QString str = QString::number(lines);
    
    //添加数据之前排序
    tableModel->sort(0,Qt::AscendingOrder);
    
    //添加数据
    tableModel->setItem(lines, 0, new QStandardItem(str));
    tableModel->setItem(lines, 1, new QStandardItem(CurTime->currentDateTime().toString("yyyy-MM-dd hh:mm:ss")));
    tableModel->setItem(lines, 3, new QStandardItem(hex.toUpper()));
    
    //添加数据后排序
    tableModel->sort(0,Qt::AscendingOrder);
}




用上面的代码实现了。当然在tabview的UI初始化的时候要加上一句 tableModel->setSortRole(1);

这样就可以实现最新的数据添加在第一行
[其他解释]
引用:
遇到类似的问题,可以交流下么



我后来用上面排序的方法弄的,但是数据很多的时候比如表里有上千条数据的时候,排队就变的很慢,而且能看见排队的过程,表里边的数据项会跳。后来没采用这种方法,直接把滚动条显示在最下面。。

热点排行
Bad Request.