RE: [ROOT] Confused about ROOT GUI under Windows

From: Valeri Fine (fine@bnl.gov)
Date: Thu Jul 31 2003 - 15:45:41 MEST


Hello dear H.-Gerd Rosarius,

Did you find the Qt-example I was speaking about with my last post?
Did you try to follow this example? Did you succeed?
(The $ROOTSYS/test/qt contains the original example from Qt and the
"ROOT"-ed version of that example. This is to allow comparison the codes
to find out what should be done to make that example work together with
ROOT widgets).

The same question can be asked about other ROOT "edition" (with win32
and "gdk" layer) Each ROOT distribution coming with the $ROOTSYS/test
directory
That contains several read-to try working applications.
Did you that directory and did you try to build that application.

In addition I would like to call your attention that all "windows" ROOT
creates (for example TCanvas) are the normal WIN32 windows. This means
one can do the GUI using the MFC library using Visual Studio.


The main thing one has to take in account creating his own ROOT-based
GUI application under Windows it is the multithread nature of the ROOT
version for Windows.

This means one must make sure the GUI API is called from the "proper"
GUI thread (It is not ROOT contains, The same statement one can find in
the Qt-and Microsoft documentation. However this is the "next issue" to
discuss. First you should my first paragraph and 

> Hello Rooters,
> 
> after a lot of roottalk reading and unsuccessful coding I am
> quite confused as well as frustrated about ROOT's ability to create
> GUI applications for windows.
> 
> My mission is simple: Creating a standalone GUI application that
> has no other functionality than to display ROOT histograms and is
> portable between Windows and Linux. (while Linux isn't the problem)
> The histograms are serialized in a root-file.

  Did you run 
 
> First I tried to build such an application for MS Windows 2000 with
> the ROOT TG*-Classes. To cut a long story short: I didn't manage
> to do it, because the application always crashed when I used
> a simple self-written class that was derived from TGMainFrame,
> included the RQ_OBJECT- and ClassDef-Makro. It goes without saying
> that I made a dictionary, too.

I think first you should specify your goal 
If your goal is "display ROOT histograms " that I don't understanbd what
you are speaking about the dictionary for some class derived from 
the TGMainFrame. Anyway the example your code would have allowed the
thousands people you are writing know to understand your troubles,

Just tell us, 

  1. "I wrote that code" (and attach its source), 
  2. "this way" (and attach your makefile) 
  3. and  "got that result" (and attach the output),

Did you read 
http://root.bnl.gov/QtRoot/QtRoot.html#tguiclass ?

> However, another attempt was to build a QT-Application that used
> the TQtWidget-class out of the "ROOT Qt-Edition" from BNL.
> (See http://root.cern.ch/root/roottalk/roottalk03/3194.html and
> http://root.cern.ch/root/roottalk/roottalk03/3197.html)
> 
> Valeri wrote back that this won't work.
> (See http://root.cern.ch/root/roottalk/roottalk03/3203.html)

  And what?

> 
> Just a few minutes ago I read this posting from 1999.
> (http://root.cern.ch/root/roottalk/roottalk99/0491.html)
> Fons wrote on a similar task that "this should be not much of a
> problem". But on a first glance the posting seems heavily
> Linux related, but I'll try it in this way next.
> 
> But please, could you clear my picture about the status of Windows
> GUI and the different GUI related ROOT "distributions" (Qt-Edition,
> win32gdk, etc.)??

  The status is clear "all editions in question work." 
  And the working ROOT and its tests / tutorials and examples 
  are the best prove of that claim.

  The Qt-edition of RootShower is a clear and advanced example 
  that works on both platforms from the single source.
  (The same can be said about the gdk-edition. 
   I understand RootShower works their also). 
   One can mention "cygwin-edition" which "x11-edition 
   compiled under Cygwin) etc.

  1. WIN32 edition doesn't support TG classes 
     (and will not support because nobody is heading that direction
  2. GDK version does support it
  3. QT version will support it (pretty soon. 
     One can speed up this process by providing his kind contribution)

With either edition it is possible to use the "native" WIN32 GUI but
that doesn't match your goal "portable between Windows and Linux."

I would like to mention the writing the "portable application" is not
simple task with either tool one still expect to spend some time and
effort to get thing up.


  My best regards, Valeri

> 
> Greetings
> 
>   H.-Gerd Rosarius
> 
> 
> 
> 
> 



This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:14 MET