我有一个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:错误: undefined 对“vTable for CheckAbder”的引用

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误: undefined 对“vTable for CheckAbder”的引用

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误: undefined 对“vTable for CheckAbder”的引用

C:\ Users \ avbder \ Desktop \ abder / checkabder.cpp:3:错误: undefined 对“vTable for CheckAbder”的引用

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

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

谢谢。

最佳答案

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

或者,可能只是您的类的定义方式以及MOC文件的问题。看到这个blog post on undefined reference to vtable errors

关于c++ - 如何解决这些Qt错误?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5733084/

10-10 21:34