See: "Chapter 26. Writing a Graphical User Interface"
Section "TVirtualX" p. 379
and
"Chapter 27. ROOT/Qt Integration Interfaces"
./configure -thread -no-xft -qt-gif -no-exceptions -dlopen-opengl
I.e. one is required to build the Qt version with the "thread" support and with no "exceptions".
One should turn off the Qt "xft" support to get the proper ROOT fonts scaling (especially for TLatex class)
Generally you are free to select the remaining Qt options like the types of the different image formats provided etc.
You can check the installation parameters of your Qt system by looking up the file
It is NOT recommended to build Qt with the "xft" fonts support.
That may cause some mismatch between the ROOT generated postscript file and the Qt generated screen image of TCanvas/TPad.
"xft" Qt feature may significantly penalize the ROOT rendering performance
especially when one communicates the X-client from the remote X-server.
more $QTDIR/config.status
No special flag to build Qt 4.3 and higher to make QtRoot working have been detected yet.
x3d and QGLViewer installed.
IVROOT environment variable
pointing to the directory with lib subdirectory where Coin3D shared librarires have been installed.
SoXt subpackage of the Coin3D kit. That may confuse the ROOT configure utility.
Make sure you do build the SoQt.so shared library.
.
setenv ROOTSYS `pwd`
setenv QTDIR <put there the directory you have installed Qt in>
setenv IVROOT <put there the directory you have installed Coint in, if any>
setenv LD_LIBRARY_PATH $ROOTSYS/lib:$QTDIR/lib:$IVROOT/lib:$LD_LIBRARY_PATH
setenv PATH $ROOTSYS/bin:$QTDIR/bin:$PATH
Then perform several ROOT tests.
cd $ROOTSYS/tutorials
ln -s $ROOTSYS/root.diff/config/unix.rootrc .rootrc
root.exe -q benchmarks.C
root.exe demos.C
README:
cd $ROOTSYS/test/qt
ln -s $ROOTSYS/root.diff/config/unix.rootrc .rootrc
qmake xform.pro
make
ln -s libxform.so xform.so (for UNIX platforms only)
root.exe xform.CC
cd $ROOTSYS/test/qtRootShower
ln -s $ROOTSYS/root.diff/config/unix.rootrc .rootrc
qmake RootShower.pro
make
root.exe RootShower.CC
To add the Qt-layer to your existent X11-version of ROOT you need 3 components:
- The source code of the original ROOT from the ROOT Web site
- The source of the Qt-layer from the BNL Web site
- Qt libraries version 3.3 or higher built with no XFT support.
Read O-201: Qt Package Vulnerabilities" CIAC bulletin also.and a few simple (for those familiar with the plain ROOT installation process) steps :
- Install Qt (version 3.2 and higher built with no XFT support)
Note: Skip this step if you want to add the "Qt layer" and "Qt extension" to your existent ROOT installation.
Download and install the fresh ROOT version:NOTE: OpenGL (svn co http://root.cern.ch/svn/root/tags/v5-18-00 rootqtgl) plug-in of the Qt-extension requires the optional ROOT "table" package to be installed as well. Make sure the "table" package libTable.so shared library is present under $ROOTSYS/lib. To install the "table" one has to install ROOT with "--enable-table" configuration option applied:./configure ... --enable-table ...- Login BNL CVS server.
Make sure you know the anonymous username/password combination.cvs -d :pserver:cvsuser@cvs.bnl.gov:/data01/CVS login- Download the Qt-layer from either CVS repository
or the tar-ballcvs -d :pserver:cvsuser@cvs.bnl.gov:/data01/CVS co -Pd qtRoot rootwget http://root.bnl.gov/QtRoot/downloads/qtFullRoot.tar.gz
- Check that you have installed and set your local Qt packages properly.
Make sureQTDIRenv variable is provided
- Option. If you want Coin3D viewer support then make sure
IVROOTenv variable is provided- Now you are ready to install ROOT with the Qt-layer.
There is an addition step for Mac Os users with non-X11 version of Qt4. They should set theQMAKESPECenvironment variable first as follows:export QMAKESPEC=macx-g++To adjust the brand new ROOT version do:
cvs -d :pserver:cvsuser@cvs.bnl.gov:/data01/CVS co -Pd qtRoot root cd qtRoot # define where you want to install the Qt components export QTROOTSYSDIR=`pwd`/qtrootsys # you may want to add Qt components into your ROOT installation # directly. In this case replace "qtrootsys" directory # name with $ROOTSYS # -- For example: # -- export QTROOTSYSDIR=$ROOTSYS qmake # Do not mess QMAKE with GMAKE. # At this point you need QMAKE # use > qmake "CONFIG+=debug" # if you want to install the Qt components # with the debug information attached make install # Note: Please disregard the warning messages: # "WARNING: Failure to find: ${QMAKE_TARGET}Dict.cxx" ls ${QTROOTSYSDIR} # clean the redundant files make distclean
Make sureGui.Backendresource selects "qt" interface. Edit $ROOTSYS/etc/system.rootrc file as needed or just copy the custom".rootrc"file in to your working or home directory.Make sure your
LD_LIBRARY_PATH(on UNIX) orPATH(on Windows) contains the new born library / DLL directory (if your$QTROOTSYSDIR != $ROOTSYS).You need something like:setenv LD_LIBRARY_PATH $QTROOTSYSDIR/lib:$LD_LIBRARY_PATH- How to test your installation?
One can test the bran-new Qt/Root interface by installing a bunch of HelloWord-like applications.cd qtExample qmake # Do not mess QMAKE with GMAKE. # At this point you need QMAKE # use > qmake "CONFIG+=debug" # if you want to install the Qt components # with the debug information attached make
uname -a
Linux play10.rcf.bnl.gov 2.4.9-31smp #1 SMP
Tue Feb 26 06:55:00 EST 2002 i686 unknown
----- ROOT 3.03/09 benchmarks summary -----
Real Time Cpu Time
x11 qt x11 qt
------------ second ------------
hsimple : 0.82 2.27 0.77 0.84
hsum : 0.42 0.90 0.40 0.56
fillrandom: 0.10 0.50 0.06 0.05
fit1 : 0.11 0.44 0.11 0.09
tornado : 0.15 0.14 0.09 0.10
na49 : 3.86 3.53 3.88 3.54
geometry : 0.98 0.97 0.70 0.70
na49view : 0.31 0.58 0.11 0.14
ntuple1 : 0.83 0.79 0.79 0.79
TOTAL : 7.58 10.12 6.91 6.81
------------------------------------------
ROOTMARKS : 238.2 203.90
------------------------------------------
WaitFor method does proerply nowadays