e4f93996a80b734e3b47b1819f93e96a.ppt
- Количество слайдов: 17
Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT V. Fine BNL, Upton June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Why ROOT is multi-platform ? • Just to be healthy ! • Just because there are plenty of Windows users around June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
ROOT for different platforms http: //root. cern. ch/root/images/ftpstats. gif June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
ROOT low level GUI interface ROOT (TVirtual. Pad) 3 different implementations to develop and support TGWIN 32 June 26, 2002 ROOT (TG<family > TVirtual. X TGX 11 fine@bnl. gov ACAT 2002, Moscow TGWin 32 GDK
ROOT Qt-based GUI interface ROOT TVirtual. X only one (!) implementation June 26, 2002 TQt fine@bnl. gov ACAT 2002, Moscow
What is Qt June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Why Qt ? 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 TVirtual. X 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 June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
(ROOT + Qt) based applications 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 ? ” June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
lib. Qtgui library Qt-based ROOT consists of a standard ROOT installation with the addition of two additional shared libraries The lib. Qt. Gui library contains implementations of abstract interfaces provided by the TGui. Factory ROOT class: • TCanvas. Imp • TBrowser. Imp 0. 5 day to implement day 21 days to implement ! • TContext. Menu. Imp • TControl. Bar. Imp • TInspector. Imp June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Qt designer to create ROOT embedded canvases June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
A test application to combine ROOT and Qt Widget June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Where to get Qt-ROOT from June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Qt-ROOT FAQ June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Qt-ROOT CVS 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. June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Conclusion There are enough evidences the present approach allows the ROOT developers as well as ROOT users to work with code that has no X 11/WIN 32 graphics subsystem dependencies and at the same time opens unrestricted access to a rich set of ready-touse commercial and free GUI Qt-based widgets. The Qt-based version was tested on Unix and Windows. June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
Thank you Special thanks: 1. Torre Wenaus, Yuri Fisyak, Victor Perevoztchikov 2. Anton Fokin 3. Christian Holm Christensen 4. ROOT team 5. ROOT folks from ROOTTALK June 26, 2002 fine@bnl. gov ACAT 2002, Moscow
0. Long lasting application 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 X 11 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 June 26, 2002 fine@bnl. gov to create GUI with Qt rather struggle with TG<classes> ACAT 2002, Moscow
e4f93996a80b734e3b47b1819f93e96a.ppt