Re: AW: [ROOT] unable to run a gui (fwd)

From: Valeri Fine (Faine) (fine@bnl.gov)
Date: Wed May 24 2000 - 18:43:54 MEST


One can find $ROOTSYS/test/Aclock.cxx
class.
One can create a Aclock class share lib  with a Makefile provided.
Then one can launch a ROOT session, load that library and create an object
of  the Aclock class to see how timer works.
("Tetris" class  is another choice)

         Valery

----- Original Message -----
From: Olivier D'Arcy <darcy@ligo.mit.edu>
To: <roottalk@pcroot.cern.ch>
Sent: 24 ÍÁÑ 2000 Ç. 9:58
Subject: Re: AW: [ROOT] unable to run a gui (fwd)


> Hi thanks for your answer,
>
> I read about threads, it could probably solve my problem. Still it could
> make my programm very complex if I need to compile Root in a thread safe
> mode. That's why I might prefer to use timers.
>
>
> Can somebody give me a pointer to a example using timers?
>
>
>
> On Wed, 24 May 2000, Hemberger Dr. Marc wrote:
>
> > Hi Olivier,
> >
> > this could be a chance to advertise once again the usage of TThreads
> > together with a GUI ;-)
> >
> > We had the same problem and solved it by using threads. When we request
> > events from an event stream and want to have the resulting histogram drawn
> > on a canvas, we are obliged to wait, until the system returns from the
> > request and the canvas update is done.
> >
> > But what happens, if the request stops, no events are coming etc.? The GUI
> > is blocked for ever. So we put the event request into a thread and from now
> > on the GUI runs asynchronous to the event request. The canvas update can
> > then be performed by another thread or a timer.
> >
> > For details, please read
> >
> > http://www-linux.gsi.de/~go4/HOWTOthreads/
> >
> > If you need more info, don't hesitate to contact us.
> >
> > I admit, that the usage of TThreads is not very intuitive and probably in
> > this case like shooting on birds with canonballs. Another solution could be
> > the usage of timers, both for the event request and the canvas update.
> > Probably more intuitive for scientists ...
> >
> > Greetings,
> >
> > Marc
> > -----Ursprüngliche Nachricht-----
> > Von: Olivier D'Arcy [mailto:darcy@ligo.mit.edu]
> > Gesendet: Dienstag, 23. Mai 2000 23:12
> > An: roottalk@pcroot.cern.ch
> > Betreff: [ROOT] unable to run a gui (fwd)
> >
> >
> >
> >
> > ---------- Forwarded message ----------
> > Date: Tue, 23 May 2000 16:55:19 -0400 (EDT)
> > From: Olivier D'Arcy <darcy@ligo.mit.edu>
> > To: julien@ligo.mit.edu
> > Subject: unable to run a gui
> >
> > I have written a Mymainframe class derived from TGMainframe in order to
> > create a gui with plots and window. Then in my main function, I create a
> > Mymainframe object with the new function. After the frame is created I
> > would like to launch an infinite loop that updates the plots in realtime
> > by reading
> > datafiles. But the problem is that the frame itself only appears on the
> > screen  when the main returns, so the infinite loop is tryibg to update my
> > plots before the plots are first drawn. Since I want  an infinite loop, I
> > need to make my frame appear first and then start the update_loop()
> > method.
> >
> > this is how my code looks like:
> >
> > main()
> > {
> > myframe = new Mymainframe(..., gClient->GetRoot(), 500, 500, ...);
> > update_loop(filename...);
> > }
> >
> > Can somebody help with this?
> >
> >
>
>



This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:26 MET