Cross platform qt based implementation of low level gui layer of root
Download
1 / 17

Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT - PowerPoint PPT Presentation


  • 87 Views
  • Uploaded on
  • Presentation posted in: General

Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT. V.Fine BNL, Upton. Why ROOT is multi-platform ?. Just to be healthy ! Just because there are plenty of Windows users around. ROOT for different platforms http://root.cern.ch/root/images/ftpstats.gif.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha

Download Presentation

Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Cross platform qt based implementation of low level gui layer of root
Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT

V.Fine

BNL, Upton

fine@bnl.gov

ACAT2002, Moscow


Why root is multi platform
Why ROOT is multi-platform ? Layer of ROOT

  • Just to be healthy !

  • Just because there are plenty of Windows users around

fine@bnl.gov

ACAT2002, Moscow


Root for different platforms http root cern ch root images ftpstats gif
ROOT for different platforms Layer of ROOThttp://root.cern.ch/root/images/ftpstats.gif

fine@bnl.gov

ACAT2002, Moscow


Root low level gui interface
ROOT low level GUI interface Layer of ROOT

ROOT

(TVirtualPad)

ROOT

(TG<family>

3 different implementations to develop and support

TVirtualX

TGWIN32

TGX11

TGWin32GDK

fine@bnl.gov

ACAT2002, Moscow


Root qt based gui interface
ROOT Qt-based GUI interface Layer of ROOT

ROOT

ROOT

TVirtualX

only one (!) implementation

TQt

fine@bnl.gov

ACAT2002, Moscow


What is qt
What is Qt Layer of ROOT

fine@bnl.gov

ACAT2002, Moscow


Why qt
Why Qt ? Layer of ROOT

It does what it promises !

Myself have been confused no time with Qt documentation and functionality

But it is not my (ROOT user) business to make the ROOT team life more easy.

The plain implementation of TVirtualX that doesn’t bring any new feature can not justify the efforts to introduce a new extra layer and external dependency of the ROOT package

fine@bnl.gov

ACAT2002, Moscow


Root qt based applications
(ROOT + Qt) based applications Layer of ROOT

The question is:

“How easy can one create a complex application that uses ROOT to do what only ROOT can provide (namely the features coming from the built-in C++ interpreter) and use Qt to create cross-platform GUI ? ”

fine@bnl.gov

ACAT2002, Moscow


Libqtgui library
libQtgui library Layer of ROOT

  • Qt-based ROOT consists of a standard ROOT installation with the addition of two additional shared libraries

  • The libQtGui library contains implementations of abstract interfaces provided by the TGuiFactory ROOT class:

  • TCanvasImp

  • TBrowserImp

  • TContextMenuImp

  • TControlBarImp

  • TInspectorImp

0.5 day to implement

1 day to implement !

2 days to implement

fine@bnl.gov

ACAT2002, Moscow


Qt designer to create root embedded canvases
Qt designer to create ROOT embedded canvases Layer of ROOT

fine@bnl.gov

ACAT2002, Moscow


A test application to combine root and qt widget
A test application to combine ROOT and Qt Widget Layer of ROOT

fine@bnl.gov

ACAT2002, Moscow


Where to get qt root from
Where to get Qt-ROOT from Layer of ROOT

fine@bnl.gov

ACAT2002, Moscow


Qt root faq
Qt-ROOT FAQ Layer of ROOT

fine@bnl.gov

ACAT2002, Moscow


Qt root cvs
Qt-ROOT CVS Layer of ROOT

  • The source code is available via CVS repository as well.

  • To check out the sources, you need to be running CVS 1.10 or later (check by doing cvs -v), and have your $CVSROOT set to

  • :pserver:cvs@usatlas.org:/rootbnl/cvs

  • The password for user cvs is cvs.

  • Two cvs commands will do the job:

  • cvs -d :pserver:cvs@usatlas.org:/rootbnl/cvs login

  • cvs -d :pserver:cvs@usatlas.org:/rootbnl/cvs co root

  • AFS access will be provided also.

  • fine@bnl.gov

    ACAT2002, Moscow


    Conclusion
    Conclusion Layer of ROOT

    There are enough evidences the present approach allows the ROOT developers as well as ROOT users to work with code that has no X11/WIN32 graphics subsystem dependencies and at the same time opens unrestricted access to a rich set of ready-to-use commercial and free GUI Qt-based widgets. The Qt-based version was tested on Unix and Windows.

    fine@bnl.gov

    ACAT2002, Moscow


    Thank you
    Thank you Layer of ROOT

    • Special thanks:

    • Torre Wenaus, Yuri Fisyak, Victor Perevoztchikov

    • Anton Fokin

    • Christian Holm Christensen

    • ROOT team

    • ROOT folks from ROOTTALK

    fine@bnl.gov

    ACAT2002, Moscow


    Cross platform qt based implementation of low level gui layer of root

    0. Long lasting application Layer of ROOT

    No penalty

    1. Very wide used on Linux system (KDE)

    2. Shipped with the source code and installation script

    (no technical to take over but legal issue).

    1. What is accepted level:

    1. one pixel was that reliable level

    2. dialog window is a mandatory attibute of any system

    ROOT is designed like we 20 years ago

    2. Qt - quality

    library of Widget

    weel-though separation of the automaically generated GUI and

    user-provided custom actions. (Tha tallow to share GUI across applications)

    3. Functionality: They treat MS a GUI standard

    3. What ROOT may end up with. The best scenario we will ned up with somethin

    Qt alike but in many years.

    4. Price:

    1. Free for non-commercial applcation on X11 platform

    2. True cross platform (code designed and debugged on with free UNIX will

    work in Windows

    3. This allow to minimiz the number of Windows license

    4. Windows license is really cheap anyway (acad. price $700/developer)

    our experiecne did prove this worth to buy. It is much faster and better

    to create GUI with Qt rather struggle with TG<classes>

    4.1. Lack of documentation

    4.2. Lack of functionality

    5 License.

    Qt 2. restrictive

    Qt 3. can be accepted

    fine@bnl.gov

    ACAT2002, Moscow


    ad
  • Login