@Coloriez In header file you probably have: class HelpDialog : public QWidget { Q_OBJECT public: HelpDialog(QWidget *parent); // this is declaration of the constructor ~HelpDialog(); .... /// Every function declared and called implicitly or explicitly needs to be implemented. Implementation usually is either provided at the same it was declared at or in cpp file, For example You could replace HelpDialog(QWidget *parent); with HelpDialog(QWidget *parent) {}; This would add implementation which does nothing. But this would be a bad idea in this case. You probably would want constructor which at least initialize parent. For example you could add in cpp file instead: HelpDialog::HelpDialog(QWidget *parent) :QWidget( parent ) { }; I highly recommend re-read C++ book until you understand at least the basics or search for c++ novice forum. Your questions have nothing to do with Qt yet. This is not an offence. But I doubt you will be getting help you need here due to specialization of this forum.