QT — неопределенная ссылка на vtable

#c

#c

Вопрос:

У меня проблема с моей программой

Fenetre.h

 #ifndef FENETRE_H
#define FENETRE_H
#include <QWidget>
#include <QApplication>
#include <QSlider>
class Fenetre : public QWidget{
Q_OBJECT
public:
    Fenetre();

public slots:
    void changeLength(int size);


private:
    QSlider *f_slider;
};

#endif // FENETRE_H
  

Fenetre.cpp

 #include "Fenetre.h"

Fenetre::compl Fenetre(){
    delete f_slider;
}

Fenetre::Fenetre() : QWidget(){
    setFixedSize(300, 70);

    f_slider = new QSlider(Qt::Horizontal, this);
    f_slider->setGeometry(40, 30, 150, 20);

    QObject::connect(f_slider, SIGNAL(valueChanged(int)), this, SLOT(changeLength(int)));
}

void Fenetre::changeLength(int size){
    setFixedSize(size, 70);
}
  

Ошибка:

 erreur : undefined reference to `vtable for Fenetre'
  

Ответ №1:

Вы забыли «moc» Fenetre.h . Пожалуйста, добавьте его в HEADERS раздел в вашем файле pro.

Смотрите это: http://qt-project.org/doc/qt-4.8/qmake-project-files.html

Ответ №2:

удалите автоматически созданные каталоги build-yourproject-xxxx-Debug / Release и перестроите его.