2011-10-16 2 views
0

C++로 Qt GUI를 프로그래밍하려고합니다.Qt 연결 기능

는 sample.h :

#ifndef SAMPLE_H 
#define SAMPLE_H 

#include <QtGui/QApplication> 
#include <QtGui/QPushButton> 
#include <QtGui/QWidget> 
#include <QtGui/QGridLayout> 
#include <QtGui/QLineEdit> 
#include <qobject.h> 

class Sample : public QObject 
{ 
    Q_OBJECT 
public: 
    Sample(); 
public slots: 
    void buttonPressed(); 
private: 
    QWidget *widget; 
    QGridLayout *layout; 
    QLineEdit *le; 
    QPushButton *button; 
}; 

#endif // SAMPLE_H 

sample.cpp :

#include "sample.h" 

Sample::Sample() 
{ 
    widget = new QWidget(); 
    widget->setWindowTitle("Sample"); 
    layout = new QGridLayout(); 

    le = new QLineEdit(); 

    button = new QPushButton(); 
    button->setText("Button"); 

    connect(button, SIGNAL(clicked()), this, SLOT(buttonPressed())); 
    layout->addWidget(le, 0, 0); 
    layout->addWidget(button, 1 , 0); 

    widget->resize(300, 300); 
    widget->setLayout(layout); 
    widget->show(); 
} 

void Sample::buttonPressed(){ 
    le->setText("pressed"); 
} 

나는 건물 때이 오류를 얻을 :

error: undefined reference to `vtable for Sample' 

내가 사용 QtCreator 여기에 코드입니다 공식 Qt 웹 페이지에서.

아무도 작동하도록하려면 어떻게해야합니까? 답장을 보내 주셔서 대단히 감사합니다.

답변

3

이러한 종류의 오류는 일반적으로 클래스를 작성하고 컴파일 한 후 Q_OBJECT 매크로를 추가하면 발생합니다. qmake를 재실행하면 대개이를 수정합니다.

+0

문제가 해결되었습니다. :) qmake를 다시 실행 한 프로젝트를 정리했는데 작동합니다. :) 대단히 감사합니다. :) – Reshi