RE: TGFileContainer MultipleSelections

From: Lee, Kerry T. \(JSC-SF\)[UHCL] <>
Date: Wed, 29 Mar 2006 11:31:37 -0600

Hi Valeri,

Thanks for your help. I installed Qt 3.3.4 and I did not encounter any problems. I'll let you know how the database accessing goes.


-----Original Message-----
From: on behalf of Fine, Valeri Sent: Tue 3/28/2006 8:14 PM
To: Lee, Kerry T. (JSC-SF)[UHCL]; Ilka Antcheva; Cc:
Subject: RE: [ROOT] TGFileContainer MultipleSelections  

Hello Kerry, I am sorry :((
CERN doesn't work with Qt 4. yet! The example, I gave you and all my tests are for Qt 3.3 API too. See:

Watch "3.3" within URL I had submitted

  Qt 3.x and Qt 4.x are two different non-compatible packages.   Did you compile Qt/Root yourself against of Qt 4.1.1?

(Even though the last version of Qt 3.3 is 3.3.6 you are advised to set up the version 3.3.4 see: discussion on issue.

Look up the Qt 4.1 doc too:

You see the header file for Qt 4 is

    #include <QFileDialog>

    #include <qfiledialog.h>
for Qt 3.3

See Qt4 for the further documentation:

You may try to reshape my example for Qt4, but I can not guaranty any support for TWO different Qt packages. As soon as CERN (or BNL) decides to go to Qt4 I am willing to give up the Qt3 and support Qt4 instead. In fact personally I would like to do that as soon possible. Alas the Qt3 to Qt4 CERN transition is out of my control.

Sorry for such inconvenience.

The bottom line: Use Qt 3.3 for the time being. If you really need Qt4 (for the sake of the special SQL driver) let me know :)

Best Regards

                         Valeri Fine

Brookhaven National Laboratory
Upton, NY 11973, USA
Phone: +1 631 344 7806
Fax: +1 631 344 4206
-----Original Message-----
From: Lee, Kerry T. (JSC-SF)[UHCL] [] Sent: Tuesday, March 28, 2006 7:24 PM
To: Fine, Valeri; Ilka Antcheva; Subject: RE: [ROOT] TGFileContainer MultipleSelections

Hi Valeri,

Thank you for your detailed outline and example macro. I installed the newest version of Qt (4.1.1) and successfully compiled the HelloWorld example from the manual. I then followed your procedure. I had a warning when starting root which was

I created a file ~/.fonts.conf and added a single line of $ROOOTSYS/fonts, but this did not solve the problem. If this is only related to fonts it is unimportant to me at the moment.

I was not able to run your example macro in cint, but when I invoked aclic everything worked as expected.

root [0] gSystem->AddIncludePath("-I$QTDIR/include") root [1] .x FileDialog.C
Error: Function getOpenFileNames() is not defined in current scope FileDialog.C:10: Possible candidates are...
filename line:size busy function type and name Warning: Automatic variable QStringList files is allocated FileDialog.C:10:Error: Undeclared variable QStringList files FileDialog.C:10: *** Interpreter error recovered ***
root [2] .x FileDialog.C++
Info in <TUnixSystem::ACLiC>: creating shared library /media/usbdisk/kerrylee/marie/code/GUI/./

For now I am only working with compiled code, therefore, this will work for me now. Maybe because I did not use Qt version 3.3 is why the interpreted code is not functioning. At any rate the current solution will work for me.

Thanks again,


-----Original Message-----
From: Fine, Valeri [] Sent: Sun 3/26/2006 12:27 PM
To: Fine, Valeri; Ilka Antcheva; Lee, Kerry T. (JSC-SF)[UHCL]; Subject: RE: [ROOT] TGFileContainer MultipleSelections

 I am sorry, I missed to add the relevant ROOT macro.

 Assuming you have the standard ROOT installation with Qt  (for example at CERN)

  1. setup ROOT and QT environment. For example, at CERN "lxplus" you can execute the script < >

2. Make a local copy ."rootrc" file to turn on the Qt-layer <>

3. Copy the C++ ROOT macro <>

ifndef __CINT__

#  include <qfiledialog.h>
#  include <qstringlist.h>
#  include <qstring.h>

void FileDialog() {

// gSystem->AddIncludePath("-I$QTDIR/include"); // See: <>   QStringList files = QFileDialog::getOpenFileNames ();  

  QStringList::Iterator it = files.begin();   while ( it != files.end() ) {

      printf ("Next file selected: %s\n", (const char *)(*it));


4. Start ROOT session and execute 2 ROOT command    

root [0] gSystem->AddIncludePath("-I$QTDIR/include"); root [1] .x FileDialog.C++

5. You should get the Qt widget <>

6. You should see the the of the selected file names <>

If you don't this maynave ment there is some bug to be fixed. Please file the ROOT bug report.

Either way your kind feedback would be appreciated a lot.

 Thank you, Hope this helps


From: Fine, Valeri
Sent: Sat 3/25/2006 12:21 PM
To: Ilka Antcheva; Lee, Kerry T. (JSC-SF)[UHCL]; Subject: RE: [ROOT] TGFileContainer MultipleSelections

My I remind people that there is the back door called Qt-layer

If you need "multiple selections" now you can use Qt class <x-excid://3E8A0000/uri:>
(you should turn on the Qt layer using ".rootrc". resource file see <x-excid://3E8A0000/uri:> page 393)
As soon as ROOT TG provides the function you are seeking you may have replaced it back with the "TG" counterpart.

Hope this helps Valeri

From: Ilka Antcheva
Sent: Sat 3/25/2006 4:17 AM
To: Lee, Kerry T. (JSC-SF)[UHCL]; Subject: RE: [ROOT] TGFileContainer MultipleSelections

Hi Kerry,

This feature is not available yet in TGFileConaines but will come soon because of internal needs to have it. We will keep you informed.

Cheers, Ilka

From: on behalf of Lee, Kerry T.
Sent: Sat 3/25/2006 12:36 AM


Subject: [ROOT] TGFileContainer MultipleSelections

Dear Rooters,

How do I allow for multiple selections via a mouse click within a TGFileContainer?


Kerry Received on Wed Mar 29 2006 - 19:33:38 MEST

This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:58 MET