crossplatform.ru

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

> Тормозит иерархическая модель построенная на QAbstractItemModel (библиотека QT)
Delphist
  опции профиля:
сообщение 20.8.2008, 9:36
Сообщение #1


Студент
*

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

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




Репутация:   0  


Есть иерархическая модель наследуемая от QAbstractItemModel (это библиотека QT), построение модели происходит на основе моего иерархического класса типа:
CMyClass
{
public:
    
    CMyClass();

    inline QString getName() const {return m_sName;}
                inline CMyClass *getParent() {return m_pOwner;}
    inline CMyClass& operator[](QString sKey) {return getProperty(sKey);}
                ...
    void setInt(int v);
    void setName(QString v);

                ...
    
private:
    CMyClass& getProperty(QString sKey);
    QHash<QString,CMyClass*> m_Properties;
    
    QString           m_sName;
    int                   m_nCode;
    CMyClass      *m_pOwner;
};


Этот класс передается по указателю в модель, соответственно когда происходят изменения в CMyClass генерятся сигналы. На все эти сигналы ставяться один и тот же слот модели, который всего лишь делает reset.
В моем классе в каком-то из узлов делаются переодические обновления (меняется nCode и sName) приблизительно 60 обновлений в сек, в итоге капитально тормозит я так понимаю TreeView из-за отрисовки, потому как reset заставляет полностью перестраиваться дерево а надо лишь всего, те узлы которые изменились.

Подскажите пожалуйста, из-за чего происходит торможение и как от него збавиться?

Сообщение отредактировал Delphist - 20.8.2008, 9:44
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Delphist
  опции профиля:
сообщение 20.8.2008, 13:34
Сообщение #2


Студент
*

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

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




Репутация:   0  


Цитата(Tonal @ 20.8.2008, 13:19) *
Ну так не используй reset.
Модель, при изменении данных, должна генерить сигнал dataChanged

А как его генерить? просто написать
emit dataChanged

или как?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Delphist   Тормозит иерархическая модель построенная на QAbstractItemModel (библиотека QT)   20.8.2008, 9:36
- - trdm   Как насчет профайлинга?   20.8.2008, 10:07
- - Litkevich Yuriy   Цитата(Delphist @ 20.8.2008, 13:36) прибл...   20.8.2008, 10:54
- - Tonal   Ну так не используй reset. Модель, при изменении д...   20.8.2008, 13:19
- - Delphist   Цитата(Tonal @ 20.8.2008, 13:19) Ну так н...   20.8.2008, 13:34
- - Tonal   void MyModel::onNodeChange(const CMyCl...   20.8.2008, 13:39
- - Delphist   Цитата(Tonal @ 20.8.2008, 14:39) Где MyMo...   21.8.2008, 8:27
- - trdm   посмотри сорцы QDirModel. мне помогло.   21.8.2008, 10:13
- - Delphist   Цитата(trdm @ 21.8.2008, 11:13) посмотри ...   21.8.2008, 10:25
- - Tonal   Открой ассистента и посмотри состав сигналов и защ...   21.8.2008, 10:31
- - Delphist   Цитата(Tonal @ 21.8.2008, 11:31) Открой а...   21.8.2008, 11:32
- - Tonal   Например dataChanged - это сигнал объявленный имен...   21.8.2008, 12:58
- - Delphist   Цитата(Tonal @ 21.8.2008, 13:58) Остальны...   21.8.2008, 13:17
- - trdm   Цитата(Delphist @ 21.8.2008, 14:17) Кто-н...   21.8.2008, 16:42
- - Tonal   Ты ассистент открой и погляди. Если что конкретно ...   21.8.2008, 17:57
|- - Delphist   Цитата(Tonal @ 21.8.2008, 18:57) Ты ассис...   26.8.2008, 9:05
- - Tonal   Что значит "код не работает должным образом...   26.8.2008, 10:09
|- - Delphist   Цитата(Tonal @ 26.8.2008, 11:09) Что знач...   26.8.2008, 11:50
- - Tonal   Помеченный на удаление не должен учитываться в кол...   26.8.2008, 11:59
- - Delphist   Цитата(Tonal @ 26.8.2008, 12:59) Помеченн...   26.8.2008, 12:24


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


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




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