Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум на CrossPlatform.RU _ Qt GUI _ Тормоза при формировании заголовка QTableWidget

Автор: demon051 6.12.2017, 9:42

Всем привет.
Помогите пожалуйста, найти вариант решения проблемы.

Формирую заголовок 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); пробовал - ещё тормознее!!! :(

Автор: Алексей1153 7.12.2017, 7:37

вот это
QApplication::processEvents();
там точно не нужно


А ещё попробуй с моделью сделать на основе QTableView

Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)