查看完整版本: [-- 为什么setVerticalHeaderLabels 效率很低?? --]

QTCN开发网 -> Qt基础编程 -> 为什么setVerticalHeaderLabels 效率很低?? [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

robertkun 2009-10-30 09:28

为什么setVerticalHeaderLabels 效率很低??

  1. 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 秒左右,不过不是觉得很慢。。

不知道能不能提高它的加载速度呢?希望高手指点。。

robertkun 2009-11-04 09:30
ding

浪迹江湖 2009-11-04 09:45
"小弟不解是...."
嘿嘿,are you a man or woman or ...

robertkun 2009-11-04 11:50
i'm a boy!

开始 2018-03-06 15:58
请问楼主的问题解决了吗?我现在遇到了相同的问题,希望能得到你的帮助


查看完整版本: [-- 为什么setVerticalHeaderLabels 效率很低?? --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled