а то сделал окно с прогресс баром, чтобы когда чтото грузится его показывать, а там прогресс бар не обновляется пока все не прогрузится, а затем уже начинает обновляться
примерный код
new qwidget
show
dataprocess
delete widget
врубил в виджете таймер, а он тоже не срабатывает (вот это вообще нонсенс)
в цикле обработки данных вызывай:
void QCoreApplication::processEvents ( QEventLoop::ProcessEventsFlags flags, int maxtime ) [static]
а то что нет таймера так и должно быть, ты же не обрабатываешь сообщения.
kuler, обработка GUI событий происходит в главном потоке. Из псевдо кода не понятно как ты собирался управлять индикатором выполнения.
в длительных циклах всегда надо вставлять такие вещи как показал sploid
sploid,
как это не обрабатываю? обработчик таймера есть и он начинает срабатывать сразу после тормоза
Litkevich Yuriy,
там нет цикла, а есть вызов одного метода который тормозит
вообще то да, в билдере тоже не срабатывает пока не завершится тормоз
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
/*B* b = new B;
IB* ib = (IB*)b;
b->met1();*/
t->Enabled = true;
}
//---------------------------------------------------------------------------
не сработает в следующий раз пока не завершится а()
void __fastcall TForm1::tTimer(TObject *Sender)
{
a();
}
//---------------------------------------------------------------------------
void a()
{
int c = 1;
for (int i = 0; i < 2000; i++)
for (int j = 0; j < 1000000; j++)
c++;
}
kuler что бы гуйня не тормозила, "длинные" методы вызываются в отдельном потоке.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)