crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Тормоза при формировании заголовка QTableWidget
demon051
  опции профиля:
сообщение 6.12.2017, 9:42
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 2
Регистрация: 12.8.2014
Пользователь №: 4209

Спасибо сказали: 0 раз(а)




Репутация:   0  


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

Формирую заголовок 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
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2807
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 191 раз(а)




Репутация:   34  


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


А ещё попробуй с моделью сделать на основе QTableView
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 18.12.2017, 21:20