• 5718阅读
  • 2回复

不吝指点 [复制链接]

上一主题 下一主题
离线fridayboy
 
只看楼主 倒序阅读 楼主  发表于: 2008-08-07
— 本帖被 XChinux 执行加亮操作(2008-08-07) —
有一个大表:500行×100列。因为需要访问每个ITEM,如何进行最优的初始化呢 ?
我用new QStandardItem();这样运行起来太慢。如果不进行初始化,那么在执行setData()就会找不到ITEM。

总之,我的意思是在对这个大表赋初值的前提下(也许也不必要赋初值,但是肯定需要访问ITEM),查看某个ITEM的当前值,如果不满足特定值,就需要通过setData()指定特定值,并且速度不能太慢,如何做呢 ???请看帖的人发表一下自己的看法。下面是简单的代码表示:
    QStandardItemModel *model = new QStandardItemModel( this);
    for(int i=0;i<500;i++)
                {
          items.clear();
          for(int j=0;j<100;j++)       
                        {
                QStandardItem *item=new QStandardItem();       
                items.append(item);
        }
          model->insertRow(i,items);
                }   
//下面是处理,没有加循环   
            QString  temp=model->item(i,j)->text();    //对任意item
            if(temp=="XXXX")  {;}           
            else  {model->setData(model->index(i, j),"XXXX");
离线water_wf

只看该作者 1楼 发表于: 2008-08-08
访问时在new
离线fridayboy
只看该作者 2楼 发表于: 2008-08-13
如果在执行QString  temp=model->item(i,j)->text();  之前,才NEW的话,同样要NEW 500*100个啊,因为需要访问每个ITEM值,这样同样很慢的。
    我在想有没有不用NEW的方式?或者能够一次NEW一行数据的ITEMS,而不必一个一个ITEM,这样只需初始化500次,会不会加快速度呢?
快速回复
限100 字节
 
上一个 下一个