robertkun |
2009-10-30 09:28 |
为什么setVerticalHeaderLabels 效率很低??
- void cgLyricsTableView::updateVerticalHeader()
{ LyricsList plyricsList; mpLyricsItem->lyricsItems(plyricsList);
QStringList list;
if( plyricsList.size() <= 0) { return; }
LyricsDataPtr pLyricsData = plyricsList[0];
list<<QString::number(pLyricsData->pageNo);
int savPageNo = pLyricsData->pageNo;
for(int curIndex = 1; curIndex < plyricsList.size(); curIndex++ ) { LyricsDataPtr pLyricsData = plyricsList[curIndex];
int onePageNo = pLyricsData->pageNo;
if(savPageNo != onePageNo) { list<<QString::number(onePageNo); savPageNo = onePageNo; } else { list<<" "; } }
mdata->setVerticalHeaderLabels(list);
这段代码是,在QTableView 中手动添加一个左侧的标号栏。 其是 mdata = new QStandardItemModel();
小弟不解的是为什么 mdata->setVerticalHeaderLabels(list); 这句的效率很低, 如果list 有8000 行左右的话,加载一个垂直的标头会用 2 秒, 实在无法忍受,但加载一次以后速度会有所提升大概在 0.5 秒左右,不过不是觉得很慢。。
不知道能不能提高它的加载速度呢?希望高手指点。。 |
|