Russian Qt Forum
Март 29, 2024, 12:40 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Тормоза при формировании заголовка QTableWidget  (Прочитано 2839 раз)
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);  пробовал - ещё тормознее!!! Грустный
« Последнее редактирование: Декабрь 06, 2017, 09:43 от Demon051 » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4724



Просмотр профиля WWW
« Ответ #1 : Декабрь 06, 2017, 23:38 »

отказаться от QTableWidget и перейти на QTableView
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Demon051
Гость
« Ответ #2 : Декабрь 07, 2017, 09:55 »

отказаться от QTableWidget и перейти на QTableView

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

но "костыли", ускоряющие процесс, уже найдены
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.072 секунд. Запросов: 22.