Название: Resize event Отправлено: EhTemka от Ноябрь 18, 2008, 12:05 Добрый день. Вот появилась задачка, отрисовывать большую картинку в неком виджете. При ресайзе виджета нужно делать перересовку этой картинки. Ресайз может происходить двумя способами: 1. Изменение размеров окна. 2. Изменение положения сплиттера. Сейчас я произвожу перересовку в void QWidget::resizeEvent ( QResizeEvent * event ), но это как то очень накладно, на каждую итерацию ресайза... Хотелось бы перерисовывать только в момент окончания изменения размеров (то есть когда юзер отпустит край окна или сплиттер). Есть мысль перересовки по таймеру, но может есть способ получше? Название: Re: Resize event Отправлено: Hort от Ноябрь 18, 2008, 12:38 сколько не мучился так толком ничего и не придумал. а чем перерисовка при каждой итерации не подходит? тормозит сильно? если нет то и не заморачивайся - все виджета так в Qt и отрисовываются.
Название: Re: Resize event Отправлено: EhTemka от Ноябрь 18, 2008, 13:00 Тормозит ужасно :)
Сделал по таймеру, стало лучше. В resizeEvent стартуем таймер, в слоте проверяем присходят ли изменения, если уже нет, то перересовываем. Просто картинка не просто картинка, а отрендеренный хтмл-текст. И он может быть очен больших размеров. А рисовать его нужно в QTreeView. Вот и заморачиваюсь. Вообщем таймер меня пока устраивает. Название: Re: Resize event Отправлено: Alex Custov от Ноябрь 18, 2008, 16:00 по поводу края окна - боюсь что никак
Название: Re: Resize event Отправлено: Hort от Ноябрь 18, 2008, 20:44 ха! я тоже пытался бороться с тормозами QTreeView =) вроде как в 4.5 должна появится возможность изменения размеров без перерисовки. заметил эту фичу в QtCreator (который собственно на 4.5 и написан) - если открыть в нем Help и двигать сплитер, разделяющий дерево помощи и виджет просмотра, то виджеты не перерисовываются, а место перемещение отмечается полупрозрачной полоской.
Название: Re: Resize event Отправлено: Alex Custov от Ноябрь 19, 2008, 11:20 ха! я тоже пытался бороться с тормозами QTreeView =) вроде как в 4.5 должна появится возможность изменения размеров без перерисовки. заметил эту фичу в QtCreator (который собственно на 4.5 и написан) - если открыть в нем Help и двигать сплитер, разделяющий дерево помощи и виджет просмотра, то виджеты не перерисовываются, а место перемещение отмечается полупрозрачной полоской. Ты имеешь ввиду http://doc.trolltech.com/4.4/qsplitter.html#opaqueResize-prop (http://doc.trolltech.com/4.4/qsplitter.html#opaqueResize-prop)? Так это испокон веку было. Название: Re: Resize event Отправлено: Hort от Ноябрь 19, 2008, 12:40 Ты имеешь ввиду http://doc.trolltech.com/4.4/qsplitter.html#opaqueResize-prop (http://doc.trolltech.com/4.4/qsplitter.html#opaqueResize-prop)? Так это испокон веку было. действительно это оно. жаль что подобного своства для виджетов.может кто знает как выделить сплитер на краю между QDockWidget и центральным виджетом? |