头文件
#ifndef M132_H
#define M132_H
#include<qwidget.h>
#include<qlineedit.h>
#include<qvalidator.h>
#include<qmessagebox.h>
#include<qstring.h>
class EMailValidator : public QValidator
{
public:
EMailValidator();
//QValidator::State validate(QString &,int &)const;
QValidator::State EMailValidator::validate(QString &,int &)const;
};
class MyMainWindow : public QWidget
{
Q_OBJECT
public:
MyMainWindow();
private:
EMailValidator* evalid;
QLineEdit* edit;
public slots:
void slotReturnPressed();
};
#endif
下面是源文件
#include"m132.h"
#include<qmessagebox.h>
//#include<qvalidator.h>
#include<qstring.h>
#include<qregexp.h>
#include <qpixmap.h>
EMailValidator::EMailValidator() : QValidator(0)
{
}
QValidator::State EMailValidator::validate(QString &text,int &pos)const
{
QRegExp regexp("*@*.???");
int result = regexp.search(text);
if(result != -1)
{
return QValidator::Acceptable;
}
else
{
return QValidator::Invalid;
}
}
void MyMainWindow::slotReturnPressed()
{
QMessageBox* mBox = new QMessageBox("Validation Results",
"Acceptable",QMessageBox::Information,QMessageBox::Ok,0,0);
mBox->show();
}
main文件我略了,这个程序编译没问题就是在lineedit中不能输入,百思不得其解