RE: [ROOT] ROOT 4.01/04

From: Faine, Valeri (
Date: Sun Nov 21 2004 - 01:38:24 MET

> -----Original Message-----
> From: []
> On Behalf Of Rene Brun
> Sent: Saturday, November 20, 2004 1:47 AM
> To: Jacek M. Holeczek
> Cc: RootTalk
> Subject: RE: [ROOT] ROOT 4.01/04
> Hi Jacek, Valeri,
> On Sat, 20 Nov 2004, Jacek M. Holeczek wrote:
> > Interesting  . . . "emit" is a CPP macro defined by Qt
> > >
> > > grep emit qobjectdefs.h
> > > #define emit                                    // emit signal
> As already answered by Fons, this is a bug in Qt. Trolltech should fix
> this bug. Meanwhile undefined "emit" after the inclusion of qtwidget.h

 I am afraid is NOT a bug :-( it is much worse.

 Qt has no "CINT". To introduce its signal/slot they need some sort of the
dictionary (primitive one vs ROOT/CINT) though. 

  The Qt solution ( not a bug)  is to use CPP macro to allow the code like 


   Class MyClass : public QObject {
    public slots:

    public signals:
and they do use (and do advice) 

      emit MySignal;

within the class implementations.

My guess, to compile the code above with the regular C++ compiler the
TrollTech has to have the "signals", "slots" and "emits" defined as an EMPTY
CPP macros at some point.

   #define slots
   #define signals
   #define emits

   Personally I do not see how they can fix it.
Anyway I certainly shall communicate TrollTech on issue to know what they
think and then forward their reply to RootTalk.

I have to call your attention these macros should not make any damage for
the ROOO code alone. At the moment ROOT GUI classes are well separated of
the Qt implementation of TVirtualX, as it should be.

Another problem (it is new for me I have to admit) the end-user code that
wants to use BOTH GUIs' within one and the same file scope.

I think it is still good to advice people do not mix Qt GUI and ROOT GUI
within one and the same source file. 

 Hope this helps,

> Rene Brun

Best Regards
                                Valeri Fine
Brookhave National Laboratory
Upton, NY 11973. USA
Phone: +1 631 344 7808
Fax:    +1 631 344 4206

This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET