• 3539阅读
  • 2回复

请问一下,Qt模型/视图如何结构多程更新数据! [复制链接]

上一主题 下一主题
离线zxh1982a
 

只看楼主 倒序阅读 楼主  发表于: 2012-10-30
关键词: Threadmodel
我在一个线程回调的函数中执行UI中的setData()函数


//在线程中调用UI上的setData 方法,模拟更新数据
void mythread::run()
{
                   while (1)
        {
            QMetaObject::invokeMethod(parent(), "setData ");
            sleep(1);
        }
}


//更新数据后显示
void mv::setData()
{
        //更新数据
    QMap<QString, double>::iterator it = data.begin();
    for (; it != data.end(); ++it)
    {
        it.value() += 0.01;
    }
    //取当前选择的行
    QItemSelectionModel* i = ui.tableView->selectionModel();
    QModelIndex index = i->currentIndex();
    //更新数据到model
    model->setMap(data);
        //设置选择的行
    ui.tableView->selectRow(index.row());
}


使用上面模拟代码可以更新数据,但我在实际情况下data的数据比较多,我不想每次都重新更新.我想直接在原始数据上做修改。


我试过第一次将model->setMap(data);传入为data的指针,以后直接修改data,不再执行model->setMap(data); 但界面显示不即时,要点一行显示一行。效果很差。


请问一下大家有什么更好的方法吗?
离线zxh1982a

只看该作者 1楼 发表于: 2012-10-30
怎么没人呢? 自己顶一下!
离线yfx2003

只看该作者 2楼 发表于: 2012-10-30
着急的话,建议到Qt的csdn上

这块儿不是很清楚,抱歉
www.qtcn.org/gpq4/
ajaxref.okajax.com/
快速回复
限100 字节
 
上一个 下一个