I need to develop a GUI Application that uses root libraries.
I have 3 solutions:
Qt-Based Root application (Derived from TApplication, needs QT)
Root-Based Qt application (Derived from QApplication, needs QT)
Root Gui (Derived from TApplication)
Can you explain me advantages and disadvantages of each solution?
The main question is essentially to yourself. Do you think that you can develop an application based on Qt in a shorter time than with the pure ROOT GUI and do you think that your application will have a better look&feel?
So far we have not seen one single application with a look&feel better than what you can do in a trivial way with ROOT alone (if somebody has one, please let us know).
If you have folloowed the long saga with the ROOt-QT combination, it should be enough to convince you to not go with Qt.
[quote=“yawn”]Qt-Based Root application (Derived from TApplication, needs QT)[/quote]You are in possession of ROOT application and you need to add some Qt features or third party Qt widgets to that application.[quote=“yawn”]Root-Based Qt application (Derived from QApplication, needs QT)[/quote]You are already in possession of some Qt application and you need to add some ROOT capability to that application.
In general, “Root-based Qt-application” (Derived from QApplication) will work better then Qt-based ROOT application. It is simpler to debug and enhance. You should find fewer problems to intergrate the third party Qt widgets and apply the advanced Qt API (like
"Delegate/View/Model" - doc.trolltech.com/4.6/model-view … mming.html,
“State Machine” - doc.trolltech.com/4.6/statemachine-api.html ,
“Safari”-based widgets - doc.trolltech.com/4.6/webintegration.html ,
“Style Sheets” doc.trolltech.com/4.6/stylesheet.html
, etc) .[quote=“yawn”]Root Gui (Derived from TApplication)[/quote]You are developing ROOT application that you are happy with. You do not care whether the appearance, look and feel of your application matches the other GUI appications on the user desktop. You do not want and do not need to add any GUI components developed elsewhere - do nothing keep using ROOT.