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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Медленная прорисовка QTreeView  (Прочитано 8050 раз)
Hort
Гость
« : Октября 11, 2008, 11:42 »

При работе с QTreeView изменение размеров окошка с ним хорошенько тормозит. Есть ли какой-нибуть способ ускорить прорисовку, или может быть вообще отключить "плавную" прорисовку, как например в Windows - не прорисовывать при изменении размеров, а показывать напр. пунктиром.
« Последнее редактирование: Октября 11, 2008, 12:45 от Hort » Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #1 : Октября 11, 2008, 12:11 »

у QWidget есть такое свойство:
updatesEnabled : bool
только вот как его к событию изменения размера прицепить, пока не соображу.
Ну смысл такой:
В начале изменения размера-запрещать обновление, а в конце - разрешить.
Записан

Юра.
ритт
Гость
« Ответ #2 : Октября 11, 2008, 17:47 »

а почему тормозит? какая модель используется?
Записан
Hort
Гость
« Ответ #3 : Октября 11, 2008, 21:29 »

QAbstractItemModel
код прикреплен. старался сделать нормально. тормозит только при изменении размеров
Записан
ритт
Гость
« Ответ #4 : Октября 11, 2008, 22:07 »

бегло просмотрел - похоже, дело не в модели.
подозреваю, что в индексы QTreeView устанавливаются виджеты. я прав?
Записан
Hort
Гость
« Ответ #5 : Октября 11, 2008, 22:19 »

нет. высылаю компилябильный проект. в архиве еще с ним файл для открытия в программе
Записан
Karl-Philipp
Гость
« Ответ #6 : Октября 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
Записан
Hort
Гость
« Ответ #7 : Октября 12, 2008, 12:26 »

это проект под MinGW. может удаление мэйк файлов поможет
« Последнее редактирование: Октября 12, 2008, 12:30 от Hort » Записан
ритт
Гость
« Ответ #8 : Октября 12, 2008, 13:17 »

я к вечеру выберусь - постараюсь уделить время на ковыряние в коде...если до вечера сами причину не найдёте Улыбающийся
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #9 : Октября 12, 2008, 18:55 »

2 Hort, у меня в виндовозе отключена фишка "отображать содержимое при изменении размеров", но при изменении положения сплиттера, тормаза действительно видны. Я склоняюсь к тому что тормозит не дерево, а перекомпоновка окна. Поэтому думаю что надо как-то обновление запрещать пока пользователь не угомонится.
Записан

Юра.
Hort
Гость
« Ответ #10 : Октября 12, 2008, 21:15 »

только как отследить начало и конец изменения размеров
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #11 : Октября 12, 2008, 22:02 »

2 Hort, прошу прощения, в моем предыдущем сообщении под сплиттером следует понимать кромку доквиджета. Вот еслиб заставить не перерисовать окно при изменении размера док виджета, тогдаб, я думаю, тормозов бы небыло. Но сходу не нашел ни какого способа.
Записан

Юра.
Hort
Гость
« Ответ #12 : Октября 12, 2008, 22:20 »

Вот еслиб заставить не перерисовать окно при изменении размера док виджета, тогдаб, я думаю, тормозов бы небыло. Но сходу не нашел ни какого способа.
я тоже думал, но ни до чего путнего не дошел. не могу придумать как перехватить начало и конец изменения размеров. а отключить перересовку луше я думаю QTreeView - я думаю тогда меньше всего пострадал бы внейшний вид при изменении размеров.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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