Russian Qt Forum

Qt => Пользовательский интерфейс (GUI) => Тема начата: Hort от Октября 11, 2008, 11:42



Название: Медленная прорисовка QTreeView
Отправлено: Hort от Октября 11, 2008, 11:42
При работе с QTreeView изменение размеров окошка с ним хорошенько тормозит. Есть ли какой-нибуть способ ускорить прорисовку, или может быть вообще отключить "плавную" прорисовку, как например в Windows - не прорисовывать при изменении размеров, а показывать напр. пунктиром.


Название: Re: Медленная прорисовка QTreeView
Отправлено: lit-uriy от Октября 11, 2008, 12:11
у QWidget есть такое свойство:
updatesEnabled : bool
только вот как его к событию изменения размера прицепить, пока не соображу.
Ну смысл такой:
В начале изменения размера-запрещать обновление, а в конце - разрешить.


Название: Re: Медленная прорисовка QTreeView
Отправлено: ритт от Октября 11, 2008, 17:47
а почему тормозит? какая модель используется?


Название: Re: Медленная прорисовка QTreeView
Отправлено: Hort от Октября 11, 2008, 21:29
QAbstractItemModel
код прикреплен. старался сделать нормально. тормозит только при изменении размеров


Название: Re: Медленная прорисовка QTreeView
Отправлено: ритт от Октября 11, 2008, 22:07
бегло просмотрел - похоже, дело не в модели.
подозреваю, что в индексы QTreeView устанавливаются виджеты. я прав?


Название: Re: Медленная прорисовка QTreeView
Отправлено: Hort от Октября 11, 2008, 22:19
нет. высылаю компилябильный проект. в архиве еще с ним файл для открытия в программе


Название: Re: Медленная прорисовка QTreeView
Отправлено: Karl-Philipp от Октября 11, 2008, 22:28
VS 2002 не хочет компилировать из-за ошибки
Цитировать
d:\QtProjects\test\_shared\src\database.cpp(120): error C2552: 'defaultProfile' : non-aggregates cannot be initialized with initializer list


Название: Re: Медленная прорисовка QTreeView
Отправлено: Hort от Октября 12, 2008, 12:26
это проект под MinGW. может удаление мэйк файлов поможет


Название: Re: Медленная прорисовка QTreeView
Отправлено: ритт от Октября 12, 2008, 13:17
я к вечеру выберусь - постараюсь уделить время на ковыряние в коде...если до вечера сами причину не найдёте :)


Название: Re: Медленная прорисовка QTreeView
Отправлено: lit-uriy от Октября 12, 2008, 18:55
2 Hort, у меня в виндовозе отключена фишка "отображать содержимое при изменении размеров", но при изменении положения сплиттера, тормаза действительно видны. Я склоняюсь к тому что тормозит не дерево, а перекомпоновка окна. Поэтому думаю что надо как-то обновление запрещать пока пользователь не угомонится.


Название: Re: Медленная прорисовка QTreeView
Отправлено: Hort от Октября 12, 2008, 21:15
только как отследить начало и конец изменения размеров


Название: Re: Медленная прорисовка QTreeView
Отправлено: lit-uriy от Октября 12, 2008, 22:02
2 Hort, прошу прощения, в моем предыдущем сообщении под сплиттером следует понимать кромку доквиджета. Вот еслиб заставить не перерисовать окно при изменении размера док виджета, тогдаб, я думаю, тормозов бы небыло. Но сходу не нашел ни какого способа.


Название: Re: Медленная прорисовка QTreeView
Отправлено: Hort от Октября 12, 2008, 22:20
Вот еслиб заставить не перерисовать окно при изменении размера док виджета, тогдаб, я думаю, тормозов бы небыло. Но сходу не нашел ни какого способа.
я тоже думал, но ни до чего путнего не дошел. не могу придумать как перехватить начало и конец изменения размеров. а отключить перересовку луше я думаю QTreeView - я думаю тогда меньше всего пострадал бы внейшний вид при изменении размеров.