Presentation is loading. Please wait.

Presentation is loading. Please wait.

QtROOT a Qt interface to ROOT Denis Bertini GO4 GSI-Darmstadt 13/06/2001.

Similar presentations


Presentation on theme: "QtROOT a Qt interface to ROOT Denis Bertini GO4 GSI-Darmstadt 13/06/2001."— Presentation transcript:

1 QtROOT a Qt interface to ROOT Denis Bertini GO4 GSI-Darmstadt 13/06/2001

2 Denis Bertini Outline zMotivations zQtROOT interface implementation yuse of general ROOT GUI Factory classes yIntegrating ROOT system events zOngoing work zConclusions

3 13/06/2001Denis Bertini Motivations zTo Give the ROOT user the opportunity to develop GUI application using together: yfull embedded ROOT canvas functionality yfull KDE/Qt cross-platform C++ class library yfull ROOT functionality i.e ROOT system events available (TTimer, TSockets, TThread,...) yCINT and Qt? zVisual design tool available : QtDesigner ycompatible with QtROOT embedded canvas.

4 13/06/2001Denis Bertini QtROOT components zFollows the general ROOT GUI ABC yno changes in ROOT source necessary zInheritance from ROOT base classes yTQRootGuiFactory (TRootGuiFactory) Qt Factory GUI components yTQCanvasImp (TCanvasImp) creates a Qt independent main window (QMainWindow) sets TQRootCanvas as a central widget yTQApplication (TApplication) ROOT environment set with a Qt GUI factory zInheritance from Qt base class yQRootApplication (QApplication) enable Qt evt-loop to drive Qt based GUI applications call ROOT inner loop repeatedly to enable ROOT system events

5 13/06/2001Denis Bertini QtROOT UML Diagram

6 13/06/2001Denis Bertini QtROOT GUI Factory zTQApplication xLoadGraphLibs() sets global gGuiFactory -> TQRootGuiFactory zTRootGuiFactory xuses services from ABC TGuiFactory xenables usage of native Qt components + ROOT widgets xoverriding:

7 13/06/2001Denis Bertini Integrating ROOT events zQRootApplication yQt event loop xuses QApplication::exec() yROOT inner loop xconnect itself to TUnixSystem::DispatchOneEvent() via a Qtimer class. xROOT inner loop is the called repeatedly and return quickly xROOT system event ( TThreads, TTimers, Network classes) are enabled while Qt event loop is activated xROOT Gui TGxx classes can also be used together with Qt Widget !

8 13/06/2001Denis Bertini QtROOT Main program Int main(int argc, char** argv){ QRootApplication a (argc, argv ); TROOT root( “QtRoot”,”test”); TQApplication app(“QtRoot”,&argc,argv); // Native ROOT GUI classes TBrowser b; // Qt windows ApplicationWindow mw; mw.setCaption(“QtRoot”); mw.show(); int res = a.exec(); return res; }

9 13/06/2001Denis Bertini Ongoing work zFurther tests of QtROOT on Unix Platform zGO4 Qt GUI front end in development zHADES Qt based online monitoring zPort to Qt3.0 ( when release available) zInvestigate integration of OpenGL

10 13/06/2001Denis Bertini Conclusions zFull embbeded ROOT Canvas functionnality is available and tested zROOT system events integration has been tested within the multithreaded GO4 framework which uses TTimers, TThreads and ROOT network classes all together zRunning Qt widgets in parallel with ROOT widgets (e.g TBrowser) is possible (see Mohammad Al-Turany talk)


Download ppt "QtROOT a Qt interface to ROOT Denis Bertini GO4 GSI-Darmstadt 13/06/2001."

Similar presentations


Ads by Google