Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: widget repaint
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Система рисования. Печать
kuler
вызываю в большом цикле чтобы форма с прогресс баром шевелилась, но она не шевелится. processEvents не предлагать
kwisp
kuler,
а без repaint не шевелится?
kuler
Цитата(kwisp @ 18.3.2009, 13:00) *
а без repaint не шевелится?

а с чего бы?
цикл - добавление итемов в листвиджет, если сдеалать processEvents, то лист будет после добавления каждого обновляться что некрасиво и очень-очень тормозно
BRE
Цитата(kuler @ 18.3.2009, 14:52) *
цикл - добавление итемов в листвиджет, если сдеалать processEvents, то лист будет после добавления каждого обновляться что некрасиво и очень-очень тормозно

Элементов много, так почему модель не использовать. Форма с прогресс-баром вообще бы не понадобилась. ;)
kuler
Цитата(BRE @ 18.3.2009, 15:23) *
Элементов много, так почему модель не использовать. Форма с прогресс-баром вообще бы не понадобилась.

мне надо щас по быстрому сделать, дополнить так сказать одним штрихом
kuler
никаких идей не появилось?
Tonal
Ежели сделать по правильному (своя модель) не можешь, то делай так:
1. Дизабли интерфейс перед циклом (чёб усер не ткнул куда попало).
2. Вызывай processEvents на каждой 100-ой или 1000-ной итерации.
3. После цикла енабли интерфейс.
kuler
а почему репаинт не работает? в хелпе написано что он приводит к немедленной перерисовке

Цитата(Tonal @ 19.3.2009, 11:22) *
Дизабли интерфейс перед циклом (чёб усер не ткнул куда попало).
2. Вызывай processEvents на каждой 100-ой или 1000-ной итерации.
3. После цикла енабли интерфейс.

не катит, если после 1000 то тогда прогресс будет тормозить, если после 100, а итемов будет скажем 3000, то тогда 30 раз листвиджет будет обновляться что некрасиво и опять же тормозно, причем чем дальше тем тормознее (попробовал с 15 - в начале быстро, а потом раз в полсекунды обновляется и продолжает замедляться)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.