Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL,

Slides:



Advertisements
Similar presentations
 An operating system (OS) is a set of computer programs that allow the user to perform basic tasks like copying, moving, saving and printing files. 
Advertisements

Valeri Fine (BNL, STAR) Qt/QtRoot in STAR and EventDisplay development.
Lecture 4: Embedded Application Framework Qt Tutorial Cheng-Liang (Paul) Hsieh ECE 424 Embedded Systems Design.
9/28/2005 ROOT 2005 Workshop CERN 1 Qt and ROOT by Valeri Fine STAR Brookhaven National Laboratory.
Chapter 5 Operating Systems. 5 The Operating System When working with multimedia, the operating system is perhaps the most important, the most complex,
Linux vs. Windows. Linux  Linux was originally built by Linus Torvalds at the University of Helsinki in  Linux is a Unix-like, Kernal-based, fully.
June ACAT2002, Moscow Cross-Platform Qt-Based Implementation of Low Level GUI Layer of ROOT V.Fine BNL, Upton.
Part 3: Design Days 15, 19, 21, 23 Chapter 8: Work Reengineering and Conceptual Design Chapter 9: Design Guidance and Design Rationale Chapter 10: Interaction.
Quicktime Howell Istance School of Computing De Montfort University.
Linux GUI X-Windows System. X-Windows System A stable and extremely powerful GUI system that provides a complete Client/Server framework. The X-org foundation.
Chapter 2: Exploring the Desktop The Complete Guide to Linux System Administration.
QT Intro. 김기형
Types of software. Sonam Dema..
Objectives  Understand the purpose of the superuser account  Outline the key features of the Linux desktops  Navigate through the menus  Getting help.
Oct ROOT 2002, CERN, Geneva Qt-Based Implementation of Low Level ROOT Graphical Layer By V.Fine.
Qt Igor November 8, 2002 Friday’s HENP Group Meeting.
Plans for the coming releases. GUI/Win32/OpenGL Finalize/consolidate event recorder Consolidate TBrowser (e.g. browsing ROOT classes) and make it default.
Learning Outcomes At the end of this lesson, students should be able to: State the types of system software – Operating system – Utility system Describe.
Lesson 4 Computer Software
Off-line Graphics Tools Ianna Osborne Northeastern University.
Linux GUI Chapter 5. Graphical User Interface GUI vs. CLI Easier and more intuitive More popular and advanced Needed for graphics, web browsing Linux.
Linux Operations and Administration
Fundamentals of Networking Discovery 1, Chapter 2 Operating Systems.
V.Fine The STAR “Integrated" Geometry Browser. 12/6/2006 STAR BNL S&C STAR weekly meeting. V.Fine
Evolution of GUI approach, the research and commercial paradigms by V.Fine.
Zubanov Alexei, 2006 Aug 07 – Sep 28 QtROOT package extension with Coin3D lib.
QtROOT a Qt interface to ROOT Denis Bertini GO4 GSI-Darmstadt 13/06/2001.
Valeri Fine (BNL, STAR) Whether it is feasible to benefit just from the two best technologies Using the Qt framework to create GUI.
Java Analysis Studio Status Update 12 May 2000 Altas Software Week Tony Johnson
M.Kunze, ACAT2003, Tsukuba ACAT2003 Session 1 Summary Talk: Computing Technology and Environment for Physics Research Marcel Kunze Institute for Scientific.
1 Chapter 7 Operating System & Utility Programs.  consists of the programs that control or maintain the operations of the computer and its devices. It.
ROOT Team Meeting October 1 st 2010 GUI thinking and testing ideas OpenGL GUI Root Team meeting 01/10/2010.
Dale Roberts Introduction to Visual Programming Dale Roberts, Lecturer Computer Science, IUPUI Department of Computer and.
Copyright © 2006 by The McGraw-Hill Companies, Inc. All rights reserved. McGraw-Hill Technology Education Copyright © 2006 by The McGraw-Hill Companies,
Introducing Software Computer Concepts Unit A. Introducing Software What is an Operating System? OS is the master controller for all the activities that.
Department of Computer Engineering Dongguk University Prof. Jin-Woo Jung Practice hour : 2008/11/14 8. Qt / Embedded.
OnX & ROOT1 OnX & ROOT on behalf of Guy Barrand ROOT Workshop 2001 June 13 FNAL Ren é Brun CERN.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev CHEP 2003 GSI Online Offline Object Oriented Go4.
The Object Model to Construct the Mixed “Open Inventor” / ROOT 3D scenes by Valeri Fine, Jerome Lauret STAR Brookhaven National Laboratory.
Using the Qt to create complex interactive HENP applications at STAR by V.Fine, J.Lauret, V.Perevoztchikov.
. The ideas behind Qt and a live demo Qt in Education.
© Paradigm Publishing, Inc. 4-1 Chapter 4 System Software Chapter 4 System Software.
13 June 2001M.Al-Turany/Root20011 Mohammad Al-Turany Go4 GSI Darmstadt 13 June 2001.
H.G.Essel: Go4 - J. Adamczewski, M. Al-Turany, D. Bertini, H.G.Essel, S.Linev ROOT 2002 GSI Online Offline Object Oriented Go4.
GUIs Basic Concepts. GUI GUI : Graphical User Interface Window/Frame : a window on the screen Controls/Widgets : GUI components.
ROOT Users Workshop September 2005 Ilka Antcheva GUI Status and Development.
Predrag Buncic (CERN/PH-SFT) Software Packaging: Can Virtualization help?
Geant4 User Workshop 15, 2002 Lassi A. Tuura, Northeastern University IGUANA Overview Lassi A. Tuura Northeastern University,
CHEP06, Mumbai, India February 2006 General Status of ROOT GUI Ilka Antcheva, Bertrand Bellenot, René Brun, Valeriy Onuchin *, Fons Rademakers CERN,
Follow-up to SFT Review (2009/2010) Priorities and Organization for 2011 and 2012.
1 Get All Answers Get All Answers. Contents History of Android Android Fragmentation The Role of Google Features and Architecture Android Software Development.
LCG AA Meeting 26 April 2006 User Interface Developments in ROOT Ilka Antcheva on behalf of ROOT GUI Work Package.
LCG AA Internal Review 30 March 2005 ROOT Graphical User Interface Ilka Antcheva, Bertrand Bellenot, Valeri Fine, Valeriy Onuchin, Fons Rademakers.
Qt Development Frameworks Past, Present and Future by Knut Yrvin – Dec 2009.
1. 2 Qt Toolkit ● C++ toolkit for cross-platform GUI application development – GUI functions (GUI = graphical user interface) – Data access components,
Chapter 2 Operating Systems
Chapter 5 Operating Systems.
Computer Software Digital Literacy.
QtRoot project status and examples of its use at STAR
Computer Software Digital Literacy.
QT graphical user interface framework
CernVM Status Report Predrag Buncic (CERN/PH-SFT).
Mobile Application Development with MeeGo™ - Programming with SDK
Qt Programming.
Go4 CHEP 2001 Multithreaded Inter-Task Communication with ROOT -
The Designer.
Go4 GUI and GSI's QtROOT interface
Go4 GUI and GSI's QtROOT interface
Module 02 Operating Systems
Presentation transcript:

Cross-platform approach to create the interactive application based on ROOT and Qt GUI libraries Rene Brun (CERN) Valeri Fine (BNL, STAR) Jerome Lauret (BNL, STAR) Fons Rademakers (CERN)

Dec 3, 2003ACAT Operating system “model” for HEP cross-platform applications It is not unusual when the life cycle of the major HEP applications last for dozens years. In other words it is much more then the life cycle of any known “system components” like operating system, file system, GUI etc. and hardware as well. To survive the sophisticated and expansive HEP applications must be in possession of some (tiny) layer to separate the HEP applications of the concrete system environment evolvement. It is possible by introducing some sort of the “virtual operating system model” the applications rely on; and providing the implementation of that model as soon as operating environment evolves.

Dec 3, 2003ACAT ROOT low level GUI interface TVirtualX TGX11TGWIN32TGWin32GDK ROOT (TG ROOT (TVirtualPad) 3 different implementations to develop and support

Dec 3, 2003ACAT Why Qt? The present model has been serving ROOT and ROOT users very well for 8 years soon. On the other hand, most tasks to be performed and implement have no ROOT specific and have been successfully solved by other packages. Qt package from TrollTech AS was especially attractive not only due to its superior quality and high level technical support but because it comes with the source code and tools to build it in place (including a commercial version for Windows). The rich set of Qt documentation can be found on Web and available from the leading publishers as well. Qt is a multi-platform C++ application framework that developers can use to write single-source applications that run-natively-on Windows, Linux, Unix, Mac OS X and embedded Linux. Qt has been used to build thousands of successful commercial applications worldwide, and is the basis of the open source KDE desktop environment.

Dec 3, 2003ACAT ROOT Qt-based GUI interface TVirtualX TGQt ROOT only one (!) implementation

Dec 3, 2003ACAT ROOT GUI class library and Qt layer The above Qt layer first was present last year on Moscow and has the significant drawback. Event though it solves the problem of combining the ROOT Canvas and Qt widgets within one single application it was not compatible with the ROOT GUI class library and the compatibility with the conventional ROOT development.

TVirtualX TGQt QObject TQtClientFilter TGQt::CreateWindow(…) TGQt::Init(…) QWidget::installEventFilter QFrame TQtClientWidget QWidget QPtrQueue fRootEventQueue TGQt::NextEvent() TGClient::ProcessOneEvent Event_tQEvent Transformation the QEvent Q-object into the ROOT Event_t structure QWidget TQtWidget TGQt::InitWindow(…)

Dec 3, 2003ACAT ROOT vs Qt To run ROOT –Create TApplication –Enter ROOT event loop TApplication::Run To run Qt –Create QApplication –Enter Qt event loop QApplication::exec() This implementation: TApplicationQApplication TApplication::Run() QApplication::exec() Bottom line: No need to deal with QApplication!

Dec 3, 2003ACAT Qt Root “Hello Word” 2. QtROOT “Hello Word” source file 1. Qt “Hello Word” source file #include int main( int argc, char **argv ) { QApplication a( argc, argv );// to be replaced QPushButton hello( "Hello world!", 0 ); hello.resize( 100, 30 ); a.setMainWidget( &hello ); // to be removed hello.show(); return a.exec(); // to be replaced } #include int main( int argc, char **argv ) { // Create an interactive ROOT application TRint *theApp = new TRint("Rint", &argc, argv); QPushButton hello( "Hello world!", 0 ); hello.resize( 100, 30 ); hello.show(); theApp->Run(); // and enter the event loop... }

Dec 3, 2003ACAT A test application to combine ROOT and Qt Widget

Dec 3, 2003ACAT ROOT QtGLWidget A fragment of STAR “Event Display” QtGLViewer class based viewer see: )

Dec 3, 2003ACAT GL Image formats provided by QGLViewer class

Dec 3, 2003ACAT Where to get Qt-ROOT from

Dec 3, 2003ACAT Qt-ROOT FAQ

Dec 3, 2003ACAT Conclusion 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. Qt layer is provided as the standard ROOT “plug-in” share library. That allows user to turn the layer on/off at run time with no change of recompilation of the user’s code. At the moment we are testing the layer to provide the full ROOT GUI classes implementation. Information about progress can be found on BNL Web site: That should be completed and the full compatible version of ROOT Qt layer to be released with the regular ROOT distribution by ROOT 2004 Workshop.