Здравствуйте, гость ( Вход | Регистрация )
Rocky | Дата 27.1.2011, 16:33 |
Только не совсем понимаю как работает этот процесс ивентс Ну, можно в assistant-е почитать... Доставляет все сообщения в главный цикл приложения. Отличный способ избавиться от "зависаний" программы во время совершения длительных операций. |
|
breeve | Дата 27.1.2011, 15:50 |
Ну можно попробовать поставить задержку (через таймер) на начало работы функции, чтобы успело все отразиться, а потом из функции делать вызов qApp->processEvents(). Если я правильно понял тогда получится что перед тем как запуститься функция, разок покажет Лэйбл с нулями, и затем функция начнет работать. И только после окончания функции он снова обновит Лэйбл. Нужно чтобы было примерно как, если в бесконечном цикле прибавлять по единичке к переменной, и затем через qDebug() ее выводить. Одна цифра будет сменяться другой оч быстро. Пытаюсь тоже самое только лэйбл. выводить. Так processEvents вызывается где-нибудь из рекурсивной функции или нет? Сделал все заработало. О_о Только не совсем понимаю как работает этот процесс ивентс.. |
|
Rocky | Дата 27.1.2011, 15:26 |
Так processEvents вызывается где-нибудь из рекурсивной функции или нет? | |
breeve | Дата 27.1.2011, 15:20 |
Ничего не получается. Как я понял дело не во времени, сделал условие чтобы выводил когда число кратно 1000 т.е ну это примерно раз в 1-2 сек. Он все равно не выводит. Причем ту переменную которая не меняется он выводит, а которые меняються нет. Думаю попробовать через QThead. А можно как нибудь создать дополнительный поток не создавая при это класс? Code
|
|
abc | Дата 27.1.2011, 14:00 |
попробуй при каждой итерации: qlabel->repaint() |
|
Rocky | Дата 26.1.2011, 8:58 |
Ну можно попробовать поставить задержку (через таймер) на начало работы функции, чтобы успело все отразиться, а потом из функции делать вызов qApp->processEvents(). | |
breeve | Дата 25.1.2011, 20:43 |
Есть рекурсивная функция которая увеличивает переменную. Эта переменная в течении секунд 10-15 увеличивается, затем остается неизменной. Необходимо чтобы эта переменная выводилась в лэйбл все время, т.е пока функция подсчитывает, видеть какое сейчас значение. Я сделал чтобы при запуске функции он выставлял значение в лэйбл, но он меняет так быстро что окно не появляется пока функция не закончит работу. Как сделать чтобы окно открылось а в нем изменялось число? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 1:55 |