如何解决那些Qt错误?

时间:2011-04-20 15:46:10

标签: c++ qt

我将以下文件作为Qt程序的一部分:

checkabder.h

#include <QDialog>
#include "ui_checkabder.h"
class CheckAbder: public QDialog, public Ui::CheckAbder
{
Q_OBJECT
public:
CheckAbder(QWidget *parent=0);
private slots:
void on_lineEdit_textChanged();
};

checkabder.cpp

#include <QtGui>
#include "checkabder.h"
CheckAbder::CheckAbder(QWidget *parent): QDialog(parent)
{
setupUi(this);
QRegExp regexp("Abder-Rahman");
QValidator *validator = new QRegExpValidator(regexp, this);
lineEdit->setValidator(validator);
connect(okButton, SIGNAL(clicked()), this, SLOT(accept()));
connect(cancelButton, SIGNAL(clicked()), this, SLOT(reject()));
}

void CheckAbder::on_lineEdit_textChanged()
{
okButton->setEnabled(lineEdit->hasAcceptableInput());
}

当我尝试运行应用程序时,出现以下错误:

C:/Users/avbder/Desktop/abder/debug/checkabder.o:-1:在函数`CheckAbder'中:

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误:未定义引用`vtable for CheckAbder'

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误:未定义引用`vtable for CheckAbder'

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误:未定义引用`vtable for CheckAbder'

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误:未定义引用`vtable for CheckAbder'

: - 1:错误:collect2:ld返回1退出状态

关于如何解决这些问题的任何想法?

感谢。

1 个答案:

答案 0 :(得分:1)

它正在寻找对CheckAbder(..)的第一个虚拟方法的引用,它无法找到。

或者,它可能就是您的类的定义方式以及MOC文件的问题。请参阅此blog post on undefined reference to vtable errors