Название: Момент отрисовки виджета Отправлено: Crazy Sage от Февраль 05, 2010, 15:14 Такая проблема - в программе есть длинные вычисления, надо пока они идут показать пользователю модальное окошко с сообщением.
Сделал такое окошко на базе QDialog'а, перед вычислениями вызываю его show(), после вычисления вызываю его close(), но в итоге вначале идут вычисления, потом окошко открывается на долю секунды и сразу закрывается. Что это, особенности обработки отображения или оптимизационный подарок компилятора? И что с этим делать? Qt 3.3 Название: Re: Момент отрисовки виджета Отправлено: Amigo_sa от Февраль 05, 2010, 15:22 После того, как вы вызываете метод show() диалог еще не показывается на экране. Приложение лишь помещает в очередь события отрисовку диалога. Чтобы все работало, как вы хотите надо перед вычислениями вызывать функцию QApplication::processEvents();
Название: Re: Момент отрисовки виджета Отправлено: Crazy Sage от Февраль 05, 2010, 15:34 Про причину я вобщем так и думал, но не знал какой функцией от этого спасаться. Спасибо большое)
Название: Re: Момент отрисовки виджета Отправлено: Vass от Февраль 05, 2010, 17:08 Гораздо лучше будет, если Вы вынесете свои длинные вычисления из основного треда программы в котором крутиться ГУИ.
QApplication::processEvents(); прилично замедляет вычисления. |