crossplatform.ru

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

 
Ответить в данную темуНачать новую тему
> Тормозит QTableView
Гость_mutineer_*
сообщение 8.4.2011, 17:32
Сообщение #1





Гости








    


Помогите пожалуйста.

Есть QTableView и модель, унаследованная от QAbstractTableModel. В модель довольно интенсивно добавляются данные. Добавленные данные тут же отображаются в QTableView.
В методе data(...) модели имеется следующий код:
if(Qt::DisplayRole != role)
        return QVariant();

Проблема в том, что таблица при наличии этих строк очень тормозит при добавлении новых данных. Если же заменить эти строки на
if(Qt::DisplayRole != role)
        return "";

то тормоза резко снижаются, но отображаются ненужные мне элементы. Возможно ли как-то уменьшить тормоза и почему вообще они появляются?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
MoPDoBoPoT
  опции профиля:
сообщение 8.4.2011, 20:35
Сообщение #2


Участник
**

Группа: Участник
Сообщений: 172
Регистрация: 7.5.2009
Из: Москва
Пользователь №: 738

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




Репутация:   9  


Попробуй вначале метода data() объявить статическую переменную empty и возвращать её в данном случае:
...
static const QVariant empty;
...
if(Qt::DisplayRole != role)
        return empty;

Возможно, что тормоза из-за массового создания объектов QVariant.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_mutineer_*
сообщение 11.4.2011, 9:59
Сообщение #3





Гости








    


Цитата(MoPDoBoPoT @ 8.4.2011, 20:35) *
Попробуй вначале метода data() объявить статическую переменную empty и возвращать её в данном случае:
...
static const QVariant empty;
...
if(Qt::DisplayRole != role)
        return empty;

Возможно, что тормоза из-за массового создания объектов QVariant.


Не помогло
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Гость_mutineer_*
сообщение 11.4.2011, 11:12
Сообщение #4





Гости








    


Разобрался. Тормозило из-за автоматической высоты строки
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

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


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




RSS Текстовая версия Сейчас: 29.11.2024, 15:43