Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > быстро извлеч данные из QStandardItemModel


Автор: Elfebet 9.6.2008, 10:28
собственно сабж, данные хранятся в QStandardItemModel, данных очен много и при поиске нужных мне значений, скорость обламывается из-за model->data(....), вот кусок кода как я на текущий момент ищу нужные данные
Код

    int incSec = 0;
    int div, i, j, m;
    double sm1, sm2, avg, val;
    const int szRow = model->rowCount()-3;
    for(m = 3; m < szRow; ++m)
    {
        incSec += intervalSeconds;
        avg = sm1 = sm2 = 0.0;
        div = incSec/intervalSeconds;
        if(incSec%intervalSeconds) div++;
        for(i = 3+div; i < szRow; ++i)
        {
            sm1 = 0.0;
            for(j=0; j < div; ++j)
            {
                val = model->data(model->index(i-j, channel)).toDouble();
                if(val > 0) sm1 += val;
                sm1 += 0;
            }
            if(sm1 > sm2) sm2 = sm1;
        }
        avg = sm2 / div;
        lst->append(avg);
    }


каким макаром можно избавиться от торможения в "val = model->data(model->index(i-j, channel)).toDouble();"???

Автор: Elfebet 9.6.2008, 11:27
вопрос решен, решил переделать все на QVector, при тестировании что
QStandardItemModel - 28000 милисекунд извлечение данных
QVector - 1235 милисекунд извлечение данных (!!!)

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)