Russian Qt Forum

Qt => Общие вопросы => Тема начата: Demon051 от Декабрь 06, 2017, 09:31



Название: Тормоза при формировании заголовка QTableWidget
Отправлено: Demon051 от Декабрь 06, 2017, 09:31
Всем привет.
Помогите пожалуйста, найти вариант решения проблемы.

Формирую заголовок QTableWidget

Код:
 
    _ui.calcDataView->setColumnCount(daysCnt*2 + 1);

    QTableWidgetItem * item = new QTableWidgetItem("ID");
    _ui.calcDataView->setHorizontalHeaderItem(0,item);
    _ui.calcDataView->hideColumn(0);
   QDate dt = _reportParameters->from().date();

    for(int i=1; i<=daysCnt*2; i++)
    {
       QCoreApplication::processEvents();
       QString str = QString::fromUtf8("Приход %1").arg(dt.toString("dd.MM"));

       QTableWidgetItem * item = new QTableWidgetItem(str);
       _ui.calcDataView->setHorizontalHeaderItem(i,item);
       QApplication::processEvents();

       i++;
       str = QString::fromUtf8("Уход %1").arg(dt.toString("dd.MM"));
       QTableWidgetItem * item2 = new QTableWidgetItem(str);
       _ui.calcDataView->setHorizontalHeaderItem(i,item2);

       dt = dt.addDays(1);
     }

При большом кол-ве столбцов (например более 300), на формирование заголовка уходит больше минуты.
Время отжирает операция вставки _ui.calcDataView->setHorizontalHeaderItem(i,item2);
Ещё есть варианты - более быстрые?
через  _ui.calcDataView->setHorizontalHeaderLabels(headers);  пробовал - ещё тормознее!!! :(


Название: Re: Тормоза при формировании заголовка QTableWidget
Отправлено: kambala от Декабрь 06, 2017, 23:38
отказаться от QTableWidget и перейти на QTableView


Название: Re: Тормоза при формировании заголовка QTableWidget
Отправлено: Demon051 от Декабрь 07, 2017, 09:55
отказаться от QTableWidget и перейти на QTableView

к сожалению некогда:(

но "костыли", ускоряющие процесс, уже найдены