killrazor
18th January 2010, 00:38
Hi,
I'm trying to compile this code
#include <QApplication>
#include <QLCDNumber>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
class LCDCounter : public QLCDNumber{
Q_OBJECT
private:
int counter;
public:
LCDCounter(QWidget *parent = 0);
public slots:
void increase(void);
};
LCDCounter::LCDCounter(QWidget *parent)
: QLCDNumber(parent)
{
counter = 0;
setSegmentStyle(QLCDNumber::Filled);
display(0);
}
void LCDCounter::increase(){
display(counter++);
}
class MyWidget : public QWidget
{
QPushButton *clickMe;
LCDCounter *counter;
public:
MyWidget(QWidget *parent = 0);
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
clickMe = new QPushButton("Click me!");
counter = new LCDCounter();
connect(clickMe,SIGNAL(clicked()),counter,SLOT(inc rease()));
QVBoxLayout *boxLayout = new QVBoxLayout;
boxLayout->addWidget(clickMe);
boxLayout->addWidget(counter);
setLayout(boxLayout);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();
}
But this error is returned.
1>main.obj : error LNK2001: sÃ*mbolo externo "public: virtual struct QMetaObject const * __thiscall LCDCounter::metaObject(void)const " (?metaObject@LCDCounter@@UBEPBUQMetaObject@@XZ) unresolved
1>main.obj : error LNK2001: sÃ*mbolo externo "public: virtual void * __thiscall LCDCounter::qt_metacast(char const *)" (?qt_metacast@LCDCounter@@UAEPAXPBD@Z) unresolved
1>main.obj : error LNK2001: sÃ*mbolo externo "public: virtual int __thiscall LCDCounter::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@LCDCounter@@UAEHW4Call@QMetaObject@@ HPAPAX@Z) unresolved
1>C:\Users\ferran\directo\QT_Tutorials\Debug\Tutoria l02.exe : fatal error LNK1120: 3 externos sin resolver
How do I guess the method that fails? What are happening?
Many thanks in advance.
I'm trying to compile this code
#include <QApplication>
#include <QLCDNumber>
#include <QPushButton>
#include <QVBoxLayout>
#include <QWidget>
class LCDCounter : public QLCDNumber{
Q_OBJECT
private:
int counter;
public:
LCDCounter(QWidget *parent = 0);
public slots:
void increase(void);
};
LCDCounter::LCDCounter(QWidget *parent)
: QLCDNumber(parent)
{
counter = 0;
setSegmentStyle(QLCDNumber::Filled);
display(0);
}
void LCDCounter::increase(){
display(counter++);
}
class MyWidget : public QWidget
{
QPushButton *clickMe;
LCDCounter *counter;
public:
MyWidget(QWidget *parent = 0);
};
MyWidget::MyWidget(QWidget *parent)
: QWidget(parent)
{
clickMe = new QPushButton("Click me!");
counter = new LCDCounter();
connect(clickMe,SIGNAL(clicked()),counter,SLOT(inc rease()));
QVBoxLayout *boxLayout = new QVBoxLayout;
boxLayout->addWidget(clickMe);
boxLayout->addWidget(counter);
setLayout(boxLayout);
}
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MyWidget w;
w.show();
return a.exec();
}
But this error is returned.
1>main.obj : error LNK2001: sÃ*mbolo externo "public: virtual struct QMetaObject const * __thiscall LCDCounter::metaObject(void)const " (?metaObject@LCDCounter@@UBEPBUQMetaObject@@XZ) unresolved
1>main.obj : error LNK2001: sÃ*mbolo externo "public: virtual void * __thiscall LCDCounter::qt_metacast(char const *)" (?qt_metacast@LCDCounter@@UAEPAXPBD@Z) unresolved
1>main.obj : error LNK2001: sÃ*mbolo externo "public: virtual int __thiscall LCDCounter::qt_metacall(enum QMetaObject::Call,int,void * *)" (?qt_metacall@LCDCounter@@UAEHW4Call@QMetaObject@@ HPAPAX@Z) unresolved
1>C:\Users\ferran\directo\QT_Tutorials\Debug\Tutoria l02.exe : fatal error LNK1120: 3 externos sin resolver
How do I guess the method that fails? What are happening?
Many thanks in advance.