• 5044阅读
  • 4回复

为什么setVerticalHeaderLabels 效率很低?? [复制链接]

上一主题 下一主题
离线robertkun
 

只看楼主 倒序阅读 楼主  发表于: 2009-10-30
  1. void cgLyricsTableView::updateVerticalHeader()
  2. {
  3.     LyricsList plyricsList;
  4.     mpLyricsItem->lyricsItems(plyricsList);
  5.     QStringList list;
  6.     if( plyricsList.size() <= 0)
  7.     {
  8.         return;
  9.     }
  10.     LyricsDataPtr pLyricsData = plyricsList[0];
  11.     list<<QString::number(pLyricsData->pageNo);
  12.     int savPageNo = pLyricsData->pageNo;
  13.     for(int curIndex = 1; curIndex < plyricsList.size(); curIndex++ )
  14.     {
  15.         LyricsDataPtr pLyricsData = plyricsList[curIndex];
  16.         int onePageNo = pLyricsData->pageNo;
  17.         if(savPageNo != onePageNo)
  18.         {
  19.             list<<QString::number(onePageNo);
  20.             savPageNo = onePageNo;
  21.         }
  22.         else
  23.         {
  24.             list<<"  ";
  25.         }
  26.     }
  27.     mdata->setVerticalHeaderLabels(list);


这段代码是,在QTableView 中手动添加一个左侧的标号栏。
其是 mdata = new QStandardItemModel();

小弟不解的是为什么 mdata->setVerticalHeaderLabels(list); 这句的效率很低,
如果list 有8000 行左右的话,加载一个垂直的标头会用 2 秒,
实在无法忍受,但加载一次以后速度会有所提升大概在 0.5 秒左右,不过不是觉得很慢。。

不知道能不能提高它的加载速度呢?希望高手指点。。
                                              简单的生活使人快乐!
离线robertkun

只看该作者 1楼 发表于: 2009-11-04
ding
                                              简单的生活使人快乐!
离线浪迹江湖

只看该作者 2楼 发表于: 2009-11-04
"小弟不解是...."
嘿嘿,are you a man or woman or ...
离线robertkun

只看该作者 3楼 发表于: 2009-11-04
i'm a boy!
                                              简单的生活使人快乐!
离线开始

只看该作者 4楼 发表于: 2018-03-06
请问楼主的问题解决了吗?我现在遇到了相同的问题,希望能得到你的帮助
本帖提到的人: @yhc195880636
快速回复
限100 字节
 
上一个 下一个