Форум вопросов и ответов

Форум вопросов и ответов (https://www.otvetnemail.ru/)
-   Архив вопросов и ответов (https://www.otvetnemail.ru/arhiv-voprosov-i-otvetov-805/)
-   -   Нет перерисовки в цикле (https://www.otvetnemail.ru/arhiv-voprosov-i-otvetov-805/net-pererisovki-v-cikle-332902/)

Guest 30.09.2011 10:03

Нет перерисовки в цикле
 
Qt 4.5.0, XP/mingw. Произвожу перемещение элемента (линии) по кнопке:Код:void GrView::onMoveLeft(){ line=vline->line(); if(line.x1()>0) { vline->setLine(line.x1()-10,line.y1(),line.x2()-10,line.y2()); }}Перерисовка происходит нормально. Но, если делать это в цикле:Код:void GrView::MoveTo0(){ int i,cur_x,cur_y; cur_x=(int)(vline->line().x1()); cur_y=(int)(hline->line().y1()); for(i=cur_x;i>0;i--){onMoveLeft();Helper::msleep(5);} for(i=cur_y;i>0;i--){onMoveUp();Helper::msleep(5);}}то не происходит перерисовки, пока цикл не пройдет до конца. Пробовал вызывать repaint(), update(), но так ничего и не добился.До protected QThread::msleep добрался так:Код:class Helper: public QThread {public: static void msleep(int ms) { QThread::msleep(ms); }};Как добиться перерисовки в цикле?


Часовой пояс GMT, время: 19:03.


© www.otvetnemail.ru - Форум вопросов и ответов.