undefined reference to vtable for ...
-
Hallo! Ich bekomme eine Fehlermeldung und weiß nicht was der Grund dafür ist!
Ich versuche mit Qt ein Fenster zu erstellen, was auch schon geklappt hatte.
Aber nun möchte ich Slots usw. benutzen und brauche dafür soweit ich das richtig verstanden habe ein "custom" Widget...header:
//... class CMyWindow : public QWidget { Q_OBJECT private: QMainWindow* p_wndMain; QHBox* p_hbColumn1; QPopupMenu* p_pmFile; QPopupMenu* p_pmOptions; QPopupMenu* p_pmHelp; public: QMainWindow* GetWindow() { return p_wndMain; } CMyWindow(QWidget *parent=0, const char *name=0 ); ~CMyWindow() { }; }; //...
cpp datei:
//... CMyWindow::CMyWindow(QWidget *parent, const char *name ) : QWidget( parent, name ) { p_hbColumn1 = new QHBox(this); p_wndMain = new QMainWindow(); p_wndMain->setCaption("XDTSConvert 0.5"); p_wndMain->setGeometry(QRect(100,100,640,480)); p_wndMain->setFixedSize(640,480); p_wndMain->statusBar()->message("Ready", 2000); p_hbColumn1->resize(640,50); /** MENU BAR **********************************************************/ p_pmFile = new QPopupMenu( p_wndMain ); p_pmOptions = new QPopupMenu( p_wndMain ); p_pmHelp = new QPopupMenu( p_wndMain ); p_wndMain->menuBar()->insertItem("&Datei", p_pmFile); p_wndMain->menuBar()->insertItem("O&ptionen", p_pmOptions); p_wndMain->menuBar()->insertItem("&Hilfe", p_pmHelp); // Name Parent Action Shortkey p_pmFile->insertItem("&Oeffnen", this, SLOT(choose()), 0); p_pmFile->insertItem("&Schliessen", this, SLOT(func()), 0); p_pmFile->insertSeparator(); p_pmFile->insertItem("&Exportieren", this, SLOT(func()), 0); p_pmFile->insertSeparator(); p_pmFile->insertItem("&Beenden", this, SLOT(quit()), 0); p_pmOptions->insertItem("&Verhalten", this, SLOT(func()), 0); p_pmHelp->insertItem("&Handbuch", this, SLOT(func()), 0); p_pmHelp->insertItem("&Ueber", this, SLOT(func()), 0); // Aktionen //// FERTISCH ========================================================== } //... int main(int argc, void** argv) { DMC model; QApplication* pApp = new QApplication(argc,(char**)argv); CMyWindow wndMain; pApp->setMainWidget( wndMain.GetWindow() ); wndMain.show(); pApp->exec(); return 0; }
Die Fehlermeldung lautet :
/home/mathias/dev/cpp/tools/dtsconvert/src/dtsconvert.cpp:900: undefined reference to
vtable for CMyWindow' dtsconvert.o(.text+0x493f):/home/mathias/dev/cpp/tools/dtsconvert/src/dtsconvert.cpp:900: undefined reference to
vtable for CMyWindow'
/home/mathias/dev/cpp/tools/dtsconvert/src/dtsconvert.cpp:900: undefined reference tovtable for CMyWindow' dtsconvert.o(.text+0x5293):/home/mathias/dev/cpp/tools/dtsconvert/src/dtsconvert.cpp:900: undefined reference to
vtable for CMyWindow'
/home/mathias/dev/cpp/tools/dtsconvert/src/dtsconvert.h:55: undefined reference tovtable for CMyWindow' dtsconvert.o(.gnu.linkonce.t._ZN9CMyWindowD1Ev+0x1f):/home/mathias/dev/cpp/tools/dtsconvert/src/dtsconvert.h:55: more undefined references to
vtable for CMyWindow' followKann mir jemand helfen?
-
naja so wie ichs sehe fehlen dir die slots choose und func?
einfach in die .h "private slots:" und dann genauso wie normale member benutzen.