我有一个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/