[Qt-interest] Multiple Inheritance Ambiguity question for QT4?

Rob Frohne rob.frohne at wallawalla.edu
Sun Oct 3 07:47:51 CEST 2010


Hi,

I'm attempting to move some code I wrote for QT3 to QT4, and it appears 
that I may have gotten away with something in QT3 that I should not be 
doing. I think my problem is that I am trying to inherit from QObject so 
I can use my own signals & slots, and also from QThread, which itself 
inherits from QObject, leading to an ambiguity. Here is my header file:

class hamlibWrapper : public QObject, QThread
{
Q_OBJECT
public:
hamlibWrapper ( QWidget *parent=0, const char *name=0 );
~hamlibWrapper();
int init ( rig_model_t, const char* port, int speed );
void run();
void setPause ( bool p );

public slots:
void setMode ( rmode_t, pbwidth_t );
void pollSlopeTuning ( bool );
void useMuteXmit ( bool );

private:
RIG* rRig;
double freq, getfreq;
bool shouldexit;
ptt_t transmit;
bool setmodes;
QMutex mutex;
freq_t getHardwareFrequency();
rmode_t mode;
rmode_t newMode;
pbwidth_t width;
pbwidth_t newWidth;
value_t slopeLowVal;
int slopeLow;
value_t slopeHighVal;
int slopeHigh;
vfo_t vfo;
bool useSlopeTuning;
bool muteOnXmit;

signals: // Signals
void newFreq ( double );
void nowTransmit ( int );
void rigChangedMode ( rmode_t, bool );
void slopeLowChangedByRig ( int );
void slopeHighChangedByRig ( int );
void rigPitch ( int );
};

and the warning I get is:

/home/frohro/Projects/sdr-for-if-qt4/qtmerge/hamlibwrapper.h:35: 
warning: direct base ‘QObject’ inaccessible in ‘hamlibWrapper’ due to 
ambiguity

Later I get errors resulting from this ambiguity:

/home/frohro/Projects/sdr-for-if-qt4/qtmerge/hamlibwrapper.cpp:31: 
error: reference to ‘connect’ is ambiguous

from the connect lines of this code:


#include <string.h>
#include <stdlib.h>
#include <qapplication.h>
#include <math.h>

#include "hamlibwrapper.h"

hamlibWrapper::hamlibWrapper ( QWidget *parent, const char *name ) : 
QObject ( parent, name )
{
rRig=NULL;
shouldexit = FALSE;
useSlopeTuning = FALSE;
rig_set_debug ( RIG_DEBUG_TRACE ); // RIG_DEBUG_NONE for none.
connect ( parent, SIGNAL ( changeRigMode ( rmode_t, pbwidth_t ) ), this, 
SLOT ( setMode ( rmode_t, pbwidth_t ) ) );
connect ( parent, SIGNAL ( changeSlopeTune ( bool ) ), this, SLOT ( 
pollSlopeTuning ( bool ) ) );
connect ( parent, SIGNAL ( tellMuteXmit ( bool ) ), this, SLOT ( 
useMuteXmit ( bool ) ) );
}

This code worked fine in QT3, but not in QT4. Can anyone give me some 
advice?

Thanks,

Rob

-- 
Rob Frohne, Ph.D., P.E.
E.F. Cross School of Engineering
Walla Walla University
100 SW 4th Street
College Place, WA 99324
(509) 527-2075			 http://people.wallawalla.edu/~rob.frohne

-------------- next part --------------
A non-text attachment was scrubbed...
Name: rob_frohne.vcf
Type: text/x-vcard
Size: 298 bytes
Desc: not available
Url : http://lists.qt-project.org/pipermail/qt-interest-old/attachments/20101002/a887d90e/attachment.vcf 


More information about the Qt-interest-old mailing list