我将以下文件作为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退出状态
关于如何解决这些问题的任何想法?
感谢。
答案 0 :(得分:1)
它正在寻找对CheckAbder(..)
的第一个虚拟方法的引用,它无法找到。
或者,它可能就是您的类的定义方式以及MOC文件的问题。请参阅此blog post on undefined reference to vtable errors。