Russian Qt Forum

Qt => 2D и 3D графика => Тема начата: Гурман от Апрель 09, 2010, 19:03



Название: есть у QPainter возможность отключить буферизацию?
Отправлено: Гурман от Апрель 09, 2010, 19:03
когда рисуешь чего-то там, оно все происходит невидимо, и только при передаче управления в цикл сообщений на экране появляется нарисованное, поэтому отлаживать рисование не очень удобно

хотелось бы, чтобы нарисованное появлялось на вьюпорте сразу же, как только выполнился какой-нибудь отдельный draw, причем с возможностью включать и отключать это как-то глобально, например, в debug включить, в relise отключить, и в debug чтобы это был всего навсего один вызов, который можно закомментировать для скорости, или вставить ровно туда, где надо поотлаживать

есть такое? заранее извиняюсь, если просмотрел...


Название: Re: есть у QPainter возможность отключить буферизацию?
Отправлено: lit-uriy от Апрель 09, 2010, 20:05
можно repaint вызывать, это застивит виджет немедленно перерисоваться, но прожорливо


Название: Re: есть у QPainter возможность отключить буферизацию?
Отправлено: Гурман от Апрель 09, 2010, 21:11
это репаинт на каждый чих надо вызывать... не кошерно...  :(


Название: Re: есть у QPainter возможность отключить буферизацию?
Отправлено: Igors от Апрель 10, 2010, 13:09
Не все ОС это позволяют. Тест: нативными средствами нарисовать синий квадрат, затем поверх него красный. На OSX никакого мигания не увидеть (double-buffered). На Вындоуз может и есть (я проверял еще на Win2K). Но это само по себе не поможет, DC должно быть натуральным и рисуемое окно видимым. А т.к. Qt контролы не есть окна Вындоуз - этого не получить.


Название: Re: есть у QPainter возможность отключить буферизацию?
Отправлено: SASA от Апрель 11, 2010, 12:23
Посмотри WA_PaintOnScreen.