undefined reference to `vtable for MyClass' [SOLVED]
I create seven custom widget, all in the same way. Now, with the eighth I've got this error code when I compile that I don't understand.
grptransmitterpoweroptions.o: In function `GrpTransmitterPowerOptions':
/home/paceyiv/workspace/QtProjects/MatrixTestTool/test/TestFirmwareVersion/../../src/grptransmitterpoweroptions.cpp:12: undefined reference to `vtable for GrpTransmitterPowerOptions'
/home/paceyiv/workspace/QtProjects/MatrixTestTool/test/TestFirmwareVersion/../../src/grptransmitterpoweroptions.cpp:12: undefined reference to `vtable for GrpTransmitterPowerOptions'
/home/paceyiv/workspace/QtProjects/MatrixTestTool/test/TestFirmwareVersion/../../src/grptransmitterpoweroptions.cpp:12: undefined reference to `vtable for GrpTransmitterPowerOptions'
/home/paceyiv/workspace/QtProjects/MatrixTestTool/test/TestFirmwareVersion/../../src/grptransmitterpoweroptions.cpp:12: undefined reference to `vtable for GrpTransmitterPowerOptions'
grptransmitterpoweroptions.o: In function `GrpTransmitterPowerOptions::tr(char const*, char const*)':
/home/paceyiv/workspace/QtProjects/MatrixTestTool/test/TestFirmwareVersion/../../src/grptransmitterpoweroptions.h:11: undefined reference to `GrpTransmitterPowerOptions::staticMetaObject'
collect2: ld returned 1 exit status
Here my code
Header
Code:
#ifndef GRPTRANSMITTERPOWEROPTIONS_H
#define GRPTRANSMITTERPOWEROPTIONS_H
#include <QGroupBox>
QT_FORWARD_DECLARE_CLASS
(QLabel);
class GrpTransmitterPowerOptions
: public QGroupBox{
Q_OBJECT
public:
GrpTransmitterPowerOptions
(QWidget *parent
= 0);
int getPAMode();
int getPowerLevel();
public slots:
void setPAMode(int paMode);
void setPowerLevel(int powerLevel);
void setMatrixModuleModel(int model);
signals:
void getPAModeRequest();
void setPAModeRequest();
void getPowerLevelRequest();
void setPowerLevelRequest();
private:
QSpinBox *spnPowerLevel;
//!< Display Power Level QLabel *lbPowerLevel;
//!< Display Power Level in dB };
#endif // GRPTRANSMITTERPOWEROPTIONS_H
Code
Code:
#include "grptransmitterpoweroptions.h"
#include <QRadioButton>
#include <QSpinBox>
#include <QLabel>
#include <QPushButton>
#include <QHBoxLayout>
#include <QVBoxLayout>
#include <QSizePolicy>
GrpTransmitterPowerOptions
::GrpTransmitterPowerOptions(QWidget *parent
){
this->setTitle(tr("Transmitter Power Level"));
// Widget
spnPowerLevel->setRange(0, 31);
spnPowerLevel->setValue(31);
lbPowerLevel
= new QLabel("10 dBm");
btGetPAMode
->setIcon
(QIcon(":/icons/get.pns"));
btGetPAMode->setToolTip(tr("Get the PA Mode"));
btGetPAMode->setStatusTip(tr("Get the PA Mode from the Matrix Module"));
connect(btGetPAMode, SIGNAL(clicked()), this, SIGNAL(getPAModeRequest()));
btSetPAMode
->setIcon
(QIcon(":/icons/set.pns"));
btSetPAMode->setToolTip(tr("Set the PA Mode"));
btSetPAMode->setStatusTip(tr("Set the PA Mode to the Matrix Module"));
connect(btSetPAMode, SIGNAL(clicked()), this, SIGNAL(setPAModeRequest()));
btGetPowerLevel
->setIcon
(QIcon(":/icons/get.pns"));
btGetPowerLevel->setToolTip(tr("Get the Power Level"));
btGetPowerLevel->setStatusTip(tr("Get the Power Level from the Matrix Module"));
connect(btGetPowerLevel, SIGNAL(clicked()), this, SIGNAL(getPowerLevelRequest()));
btSetPowerLevel
->setIcon
(QIcon(":/icons/set.pns"));
btSetPowerLevel->setToolTip(tr("Set the Power Level"));
btSetPowerLevel->setStatusTip(tr("Set the Power Level to the Matrix Module"));
connect(btSetPowerLevel, SIGNAL(clicked()), this, SIGNAL(setPowerLevelRequest()));
// Layout
grpPAMode->setTitle(tr("PA Mode"));
grpPowerLevel->setTitle(tr("Power Level"));
mainLayout->addWidget(grpPAMode);
mainLayout->addWidget(grpPowerLevel);
vboxPAMode->addWidget(rbPAMode[0]);
vboxPAMode->addWidget(rbPAMode[1]);
vboxPAMode->addLayout(hboxPAModeButtons);
grpPAMode->setLayout(vboxPAMode);
hboxPAModeButtons->addStretch(10);
hboxPAModeButtons->addWidget(btGetPAMode);
hboxPAModeButtons->addWidget(btSetPAMode);
vboxPowerLevel->addStretch(10);
vboxPowerLevel->addLayout(hboxPowerLevelValue);
vboxPowerLevel->addStretch(10);
vboxPowerLevel->addLayout(hboxPowerLevelButtons);
hboxPowerLevelValue
->addWidget
(new QLabel(tr
("Value:"),
this));
hboxPowerLevelValue->addWidget(spnPowerLevel);
hboxPowerLevelValue->addWidget(lbPowerLevel);
hboxPowerLevelButtons->addStretch(10);
hboxPowerLevelButtons->addWidget(btGetPowerLevel);
hboxPowerLevelButtons->addWidget(btSetPowerLevel);
this->setLayout(mainLayout);
}
void GrpTransmitterPowerOptions::setMatrixModuleModel(int model)
{}
void GrpTransmitterPowerOptions::setPAMode(int paMode)
{}
int GrpTransmitterPowerOptions::getPAMode()
{}
void GrpTransmitterPowerOptions::setPowerLevel(int powerLevel)
{}
int GrpTransmitterPowerOptions::getPowerLevel()
{}
Re: undefined reference to `vtable for MyClass'
try to clean project and then rebuild it.
Re: undefined reference to `vtable for MyClass'
I had already tried, same error.
I think I fix the error now when I manually run qmake.
Why in the first seven custom widget I haven't got this error?