[Qt-interest] Local event loop

Mihail Naydenov mlists at ymail.com
Fri Dec 10 09:01:05 CET 2010


Still, if you use an reiml of QThread, you can aways block the main thread 
waiting for the thread to finish.
Also all events will be sent to the thread event loop not the main one.

MihailNaydenov



----- Original Message ----
> From: "KIMURA, Hidetaka" <kimura at jig.jp>
> To: qt-interest <qt-interest at trolltech.com>
> Sent: Fri, December 10, 2010 2:25:48 AM
> Subject: Re: [Qt-interest] Local event loop
> 
> Thanks guys. But I do not want to run both main and local event loop. I
> want  to block main event loop. I want to download a file without running
> any event  in main event loop. But as shown in my sample code, timer
> events have fired  in eventLoop.exec().
> 
> On Thu, 9 Dec 2010 09:39:17 -0400
> Brian McKinnon  <bpmckinnon.qt at gmail.com>  wrote:
> 
> > If I understand your problem correctly then I think you may  want to look at
> > a QThread.  Each QThread provides its own event  loop without blocking the
> > main event loop.
> > 
> > On Thu, Dec  9, 2010 at 4:46 AM, Kai Koehne <kai.koehne at nokia.com> wrote:
> > 
> > > On 12/9/2010 2:03 AM, ext KIMURA, Hidetaka wrote:
> >  >  > Hi,
> > >  >
> > >  > Is it  possible to run a local event loop without firing events in the
> > >  main
> > >  > event loop? I want a MODAL event loop.
> >  >
> > > I doubt that the main event loop is actually delivering the  timeout
> > > event (since it's blocked), but that the sub-event loop is  delivering it.
> > >
> > > You can pose some restrictions on the  types of events being delivered in
> > > an event loop (see
> > >  http://doc.qt.nokia.com/4.7/qeventloop.html#ProcessEventsFlag-enum ).
> >  > Anyhow, it seems that this won't help you for your specific  problem.
> > >
> > > Regards
> > >
> > > Kai  Koehne
> > >
> > >  > Here is a sample code that download  a HTML in local event loop. I 
>expect
> > >  > that no timeout  fires in the local event loop's exec(). This code is
> > >  >  similar to Qt Quarterly's sample.
> > >  >
> > >   >
> > >
> > >  
>http://doc.trolltech.com/qq/qq27-responsive-guis.html#waitinginalocaleventloop
> >  >  >
> > >  >  #include<QCoreApplication>
> > >  >  #include<QNetworkAccessManager>
> > >  >  #include<QNetworkReply>
> > >  >  #include<QNetworkRequest>
> > >  >  #include<QTimer>
> > >  >  #include<QUndoCommand>
> > >  >
> > >  > int  main(int argc, char** argv) {
> > >  >       QCoreApplication app(argc, argv);
> > >  >       {
> > >  >              // The  timer will not fire in a local event loop.
> > >  >               QUndoStack stack;
> > >   >              for (int i = 0; i<   100; ++i) {
> > >  >                       stack.push(new  
>QUndoCommand(QString("%1").arg(i)));
> > >  >                       QTimer::singleShot(i *  10,&stack, SLOT(undo()));
> > >  >               }
> > >  >
> > >  >               QNetworkRequest  request(QUrl("http://example.com/"));
> > >  >               QNetworkReply* reply;
> > >   >              QNetworkAccessManager  manager;
> > >  >
> > >  >               printf("stack index = %d (should be 100)\n",
> >  > stack.index());
> > >  >               {
> > >  >                       // Entering local event loop
> >  >  >                       QEventLoop eventLoop;
> > >  >
> > >   >                       eventLoop.connect(&manager,
> > >  SIGNAL(finished(QNetworkReply*)),
> > > SLOT(quit()));
> > >   >                       reply = manager.get(request);
> > >  >                       eventLoop.exec();
> >  >  >              }
> >  >  >              printf("stack  index = %d (should be 100)\n",
> > > stack.index());
> > >   >      }
> > >  >      return  0;
> > >  > }
> > >  >
> > >   >
> > >  > -------
> > >  > KIMURA, Hide - kimura at jig.jp
> > >
> > >
> >  > --
> > > Kai Koehne
> > > Software Engineer
> > >  Nokia, Qt Development Frameworks
> > >
> > > Nokia gate5  GmbH
> > > Firmensitz: Invalidenstr. 117, 10115 Berlin, Germany
> >  > Registergericht: Amtsgericht Charlottenburg, Berlin: HRB 106443 B
> >  > Umsatzsteueridentifikationsnummer: DE 812 845 193
> > >  Geschäftsführer: Dr. Michael Halbherr, Karim Tähtivuori
> > >  _______________________________________________
> > > Qt-interest mailing  list
> > > Qt-interest at trolltech.com
> >  > http://lists.trolltech.com/mailman/listinfo/qt-interest
> >  >
> 
> -------
> KIMURA, Hide - kimura at jig.jp
> 
> 


      




More information about the Qt-interest-old mailing list