wrproject
1st July 2008, 22:23
hi,i'm using code::blocks and i have these 3 files:
main.cpp
#include <QApplication>
#include "dlgjanela.h"
//Inclusão da janela de teste
int main(int argc, char** argv)
{
QApplication app(argc, argv);
dlgjanela janela;
janela.show();
return app.exec();
}
dlgjanela.h
//código para proteger multipla inclusao de headerss
#ifndef DLGJANELA_H
#define DLGJANELA_H
#include <QDialog>
//inicio da declaração prévia das classes
class QLabel;
class QPushButton;
class QVBoxLayout;
//como a classe não existe iremos fazer uma declaração pe+via para avisar que existe
//pois iria dar um erro de compilação
//protótipo da janela de teste
class dlgjanela: public QDialog
{
Q_OBJECT
public:
dlgjanela(QWidget* parent=0);
private slots:
void disable();
private:
//no private normalmente são declarações dos widgets que irão existir no dialogo
//os tipos de variavel devem existir ou estar presente npos headers
QLabel* label;
QPushButton* botao;
QVBoxLayout* layout;
};
#endif
//fim protecção multiplas inclusões
dlgjanela.cpp
#include <QtGui>//classe que contém uma
#include "dlgjanela.h"
//uma vez declarado os prototipos no header,implementamos os metodos das classes
dlgjanela::dlgjanela(QWidget* parent):QDialog(parent)
{
label=new QLabel("ola eliseu");
botao=new QPushButton("Sair");
//conexões
connect(botao,SIGNAL(clicked()),qApp,SLOT(disable( )));
layout= new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(botao);
setLayout(layout);
}
void dlgjanela::disable()
{
botao->setEnabled(false);
}
when i try to compile i'm getting this error:
obj\Debug\main.o||In function `_ZSt17__verify_groupingPKcjRKSs':|
D:\Programas\CodeBlocks\MinGW\bin\..\lib\gcc\mingw 32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\locale _facets.tcc|2498|undefined reference to `vtable for dlgjanela'|
D:\Programas\CodeBlocks\MinGW\bin\..\lib\gcc\mingw 32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\locale _facets.tcc|2499|undefined reference to `vtable for dlgjanela'|
obj\Debug\dlgjanela.o||In function `_ZN9dlgjanelaC2EP7QWidget':|
D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|undefined reference to `vtable for dlgjanela'|
D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|undefined reference to `vtable for dlgjanela'|
obj\Debug\dlgjanela.o||In function `_ZN9dlgjanelaC1EP7QWidget':|
D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|undefined reference to `vtable for dlgjanela'|
obj\Debug\dlgjanela.o:D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|more undefined references to `vtable for dlgjanela' follow|
||=== Build finished: 6 errors, 0 warnings ===|
could you help me please?
main.cpp
#include <QApplication>
#include "dlgjanela.h"
//Inclusão da janela de teste
int main(int argc, char** argv)
{
QApplication app(argc, argv);
dlgjanela janela;
janela.show();
return app.exec();
}
dlgjanela.h
//código para proteger multipla inclusao de headerss
#ifndef DLGJANELA_H
#define DLGJANELA_H
#include <QDialog>
//inicio da declaração prévia das classes
class QLabel;
class QPushButton;
class QVBoxLayout;
//como a classe não existe iremos fazer uma declaração pe+via para avisar que existe
//pois iria dar um erro de compilação
//protótipo da janela de teste
class dlgjanela: public QDialog
{
Q_OBJECT
public:
dlgjanela(QWidget* parent=0);
private slots:
void disable();
private:
//no private normalmente são declarações dos widgets que irão existir no dialogo
//os tipos de variavel devem existir ou estar presente npos headers
QLabel* label;
QPushButton* botao;
QVBoxLayout* layout;
};
#endif
//fim protecção multiplas inclusões
dlgjanela.cpp
#include <QtGui>//classe que contém uma
#include "dlgjanela.h"
//uma vez declarado os prototipos no header,implementamos os metodos das classes
dlgjanela::dlgjanela(QWidget* parent):QDialog(parent)
{
label=new QLabel("ola eliseu");
botao=new QPushButton("Sair");
//conexões
connect(botao,SIGNAL(clicked()),qApp,SLOT(disable( )));
layout= new QVBoxLayout;
layout->addWidget(label);
layout->addWidget(botao);
setLayout(layout);
}
void dlgjanela::disable()
{
botao->setEnabled(false);
}
when i try to compile i'm getting this error:
obj\Debug\main.o||In function `_ZSt17__verify_groupingPKcjRKSs':|
D:\Programas\CodeBlocks\MinGW\bin\..\lib\gcc\mingw 32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\locale _facets.tcc|2498|undefined reference to `vtable for dlgjanela'|
D:\Programas\CodeBlocks\MinGW\bin\..\lib\gcc\mingw 32\3.4.5\..\..\..\..\include\c++\3.4.5\bits\locale _facets.tcc|2499|undefined reference to `vtable for dlgjanela'|
obj\Debug\dlgjanela.o||In function `_ZN9dlgjanelaC2EP7QWidget':|
D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|undefined reference to `vtable for dlgjanela'|
D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|undefined reference to `vtable for dlgjanela'|
obj\Debug\dlgjanela.o||In function `_ZN9dlgjanelaC1EP7QWidget':|
D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|undefined reference to `vtable for dlgjanela'|
obj\Debug\dlgjanela.o:D:\Documents and Settings\Juliana Leticia\Ambiente de trabalho\projectos-Qt\estudos\dlgjanela.cpp|6|more undefined references to `vtable for dlgjanela' follow|
||=== Build finished: 6 errors, 0 warnings ===|
could you help me please?