Название: Гарантированная отрисовка виджета Отправлено: Alex Custov от Октября 30, 2007, 16:39 Привет. Есть такой код:
Код: // активизирует этот виджет через KWin Когда hevayMethod() начинает исполняться, данный виджет должен быть гарантированно виден, все компоненты (тулбары, кнопки и др.) отрисованы. Проблема в том, что полная отрисовка происходить только после выполнения hevayMethod(). А до этого виджет всплывает, вместо компонентов и самого виджета - неотрисованные белые прямоугольники. Можно ли добиться гарантированной отрисовки ? Код Код: repaint(); // или update(); не помогает. Qt 3.3.8, X11/KDE. Спасибо. Название: Re: Гарантированная отрисовка виджета Отправлено: pastor от Октября 30, 2007, 18:25 1) Можно ли привети более подробный код. В каком контексте вызываються эти функции?
2) Как вариант доработать hevayMethod() таким образом, чтобы qApp->processEvents() вызывался в нем (если речь идёт о циклическом процессе) Название: Re: Гарантированная отрисовка виджета Отправлено: Пантер от Октября 30, 2007, 18:40 Попробовать вставить что-то типа sleep...
Название: Re: Гарантированная отрисовка виджета Отправлено: QCasper от Октября 30, 2007, 20:17 Как вариант, выполнять heavyMethod() в потоке.
Название: Re: Гарантированная отрисовка виджета Отправлено: pastor от Октября 30, 2007, 22:34 Как вариант, выполнять heavyMethod() в потоке. Да, кстате неплохой вариант Название: Re: Гарантированная отрисовка виджета Отправлено: Alex Custov от Октября 30, 2007, 22:40 1) Можно ли привети более подробный код. В каком контексте вызываються эти функции? 2) Как вариант доработать hevayMethod() таким образом, чтобы qApp->processEvents() вызывался в нем (если речь идёт о циклическом процессе) Код в принципе так и выглядит. По какому-то событию в главном окне окрывается вспомогательное окошко и начинается длительная операция. Как я понял, мгновенно отрисовать не получится :( qApp->processEvents() довольно опасная штука, а в потоке выполнить не получится (задача не параллелится из-за OpenGL). Название: Re: Гарантированная отрисовка виджета Отправлено: pastor от Октября 31, 2007, 02:18 А чем опасен qApp->processEvents() ?
Название: Re: Гарантированная отрисовка виджета Отправлено: vaprele07 от Октября 31, 2007, 02:52 QApplication::syncX () - замечу вынесено аж в QApplication :)
Название: Re: Гарантированная отрисовка виджета Отправлено: Alex Custov от Октября 31, 2007, 16:39 QApplication::syncX () - замечу вынесено аж в QApplication :) не работает syncX(). |