• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            逛奔的蝸牛

            我不聰明,但我會(huì)很努力

               ::  :: 新隨筆 ::  ::  :: 管理 ::
            當(dāng)你使用QStandardItemModel(model)與QTableView顯示數(shù)據(jù)時(shí), 如果數(shù)據(jù)量比較大, 如幾千上萬(wàn)條, 每次給model填充數(shù)據(jù)時(shí), 只是使用model->clear()來(lái)清空數(shù)據(jù), 然后再填充, 速度會(huì)非常的慢. 但如果是使用delete model; model = new QStandardItemModel()顯示的刪除model, 然后再創(chuàng)建一個(gè)model, 這樣顯示速度會(huì)非常的快, 不知何故.
            posted on 2009-08-28 07:21 逛奔的蝸牛 閱讀(13472) 評(píng)論(5)  編輯 收藏 引用 所屬分類(lèi): Qt

            評(píng)論

            # re: Qt: QStandardItemModel的極品提示 2010-02-02 17:20 leoxiaofei
            請(qǐng)問(wèn)一下,model怎樣填充速度快?
            我填充1000行數(shù)據(jù)(每行14列)用了20多秒
            不知道是不是我填充的方法錯(cuò)了,能否指點(diǎn)一下,謝謝。  回復(fù)  更多評(píng)論
              

            # re: Qt: QStandardItemModel的極品提示 2010-02-02 17:28 暗金裝備
            @leoxiaofei
            感覺(jué)應(yīng)該是你的程序如在取得這些數(shù)據(jù)的時(shí)候有什么地方出問(wèn)題了. 顯示這些數(shù)據(jù)不會(huì)需要這么長(zhǎng)時(shí)間. 不知道你具體是怎么做的, 不好說(shuō).  回復(fù)  更多評(píng)論
              

            # re: Qt: QStandardItemModel的極品提示 2010-02-02 19:01 leoxiaofei
            感謝您的回答,我實(shí)現(xiàn)的主要代碼如下:
            *.h文件
            QstandardItemModel *model = new QstandardItemModel();

            *.cpp文件
            addModelItem(QAbstractItemModel *ml,const QString &id,...(這里有14個(gè)QString))
            {
            ml->insertRow(0);
            ml->setData(ml->index(0,0),id);
            ...(一共set14個(gè))
            }
            這是個(gè)函數(shù)()
            {
            for(int i = 0;i<1000;i++)
            {
            addModelItem(model,"1",...(14個(gè)字符串));
            }
            }

            我實(shí)在不知道問(wèn)題在哪,插入這1000條記錄就用了20多秒。您如有時(shí)間,請(qǐng)指點(diǎn)一下,謝謝。  回復(fù)  更多評(píng)論
              

            # re: Qt: QStandardItemModel的極品提示 2010-02-02 19:21 暗金裝備
            看例子中的解釋, 應(yīng)該就知道問(wèn)題在哪了.
            Qt很多時(shí)候表現(xiàn)得有點(diǎn)怪, 必須用怪招才能解決. 在我寫(xiě)項(xiàng)目的過(guò)程中, 遇到過(guò)很多, 感覺(jué)邏輯上沒(méi)有任何問(wèn)題, 但卻不行, 換一點(diǎn)點(diǎn)方式又可以了, 就像上面文中列出來(lái)的一樣.

            int main(int argc, char *argv[]) {
            QApplication app(argc, argv);

            QStandardItemModel *model = new QStandardItemModel();
            QTableView *table = new QTableView();

            // 如果事先給 table設(shè)置了 model而不預(yù)指定好要存儲(chǔ)的數(shù)據(jù)的行數(shù),則會(huì)非常慢
            // table->setModel(model); /// [[1]]
            // model->setRowCount(1000); /// [[1]]

            model->setColumnCount(14);

            for (int i = 0; i < 1000; ++i) {
            model->setItem(i, 0, new QStandardItem("1"));
            model->setItem(i, 1, new QStandardItem("2"));
            model->setItem(i, 2, new QStandardItem("3"));
            model->setItem(i, 3, new QStandardItem("4"));
            model->setItem(i, 4, new QStandardItem("5"));
            model->setItem(i, 5, new QStandardItem("6"));
            model->setItem(i, 6, new QStandardItem("7"));
            model->setItem(i, 7, new QStandardItem("8"));
            model->setItem(i, 8, new QStandardItem("9"));
            model->setItem(i, 9, new QStandardItem("10"));
            model->setItem(i, 10, new QStandardItem("11"));
            model->setItem(i, 11, new QStandardItem("12"));
            model->setItem(i, 12, new QStandardItem("13"));
            model->setItem(i, 13, new QStandardItem("14"));
            }

            // 如果你是先把數(shù)據(jù)加載到model中的,那么事先不指定要存儲(chǔ)的行數(shù)。
            // 先把數(shù)據(jù)存儲(chǔ)到model中 ,然后再給table設(shè)置model,這樣也會(huì)很快 .
            table->setModel(model); /// [[2]]

            table->show();

            return app.exec();
            }  回復(fù)  更多評(píng)論
              

            # re: Qt: QStandardItemModel的極品提示 2010-02-02 19:47 leoxiaofei
            非常感謝,看來(lái)問(wèn)題出在這里。

            不過(guò)插入1w條記錄,還是用了6秒以上。
            內(nèi)存占用了50M以上,看來(lái)是我的設(shè)計(jì)有問(wèn)題,但是用QSqlTableModel就不占內(nèi)存,不知道為什么~~汗~我是新手,謝謝您的指教。  回復(fù)  更多評(píng)論
              

            国产一区二区精品久久| 久久中文娱乐网| 99久久精品免费看国产一区二区三区| 欧美性大战久久久久久| 久久久久人妻一区二区三区 | 国产69精品久久久久777| 2022年国产精品久久久久| 久久久久18| 久久亚洲国产精品一区二区| 久久综合日本熟妇| 97精品久久天干天天天按摩| 99久久精品免费| 久久精品国产91久久麻豆自制 | 久久久久国色AV免费看图片| 久久精品免费一区二区| 久久精品国产亚洲一区二区三区| 亚洲综合伊人久久大杳蕉| 久久www免费人成看国产片 | 久久99精品九九九久久婷婷| 蜜臀av性久久久久蜜臀aⅴ| 久久精品18| 国产精品狼人久久久久影院| 少妇内射兰兰久久| 久久精品国产日本波多野结衣| 久久国产成人午夜aⅴ影院 | 久久久久久精品免费免费自慰| 99久久伊人精品综合观看| 久久国产精品成人影院| 影音先锋女人AV鲁色资源网久久| 久久久久99这里有精品10 | 国产激情久久久久影院老熟女| 国产亚洲精品自在久久| 久久精品人人槡人妻人人玩AV| 无码人妻久久一区二区三区免费丨 | 伊人久久久AV老熟妇色| 少妇内射兰兰久久| 久久国产精品成人片免费| 无遮挡粉嫩小泬久久久久久久| 伊人久久大香线焦AV综合影院 | 伊人色综合久久天天人守人婷| 久久久久人妻一区精品|