这里的第一个模块是特制的编辑框模块,主要用来限制特定的输入,我在这里做了用正则表达式限制email的输入,目的是按照我指定的格式来输入.但是效果不是特别好,因为对于xxxx@xxx.com的格式,只能限制你输入的东西不能超出这个范围,但是你少输入了,比如123456@,这样编辑框就不能限制你,毕竟它没法检测你是否想要继续输入.所以还应该在获取邮箱编辑框文本的地方用正则表达式继续检测.当然它还是有用的,我们可以继续添加,比如在光标离开编辑框的时候就检查文本是否正确,不正确就显示一个警告的label.当然这一部分暂时没有去弄.
#include "QLineEdit"
#include "QRegExp"
#include"QRegExpValidator"
#include "QString"
#ifndef MYEDIT_H
#define MYEDIT_H
class MyRegEdit:public QLineEdit
{
Q_OBJECT
public:
MyRegEdit(QString reg_str ,QWidget* parent = 0);
~MyRegEdit();
protected:
QRegExp rx;
};
class MyEmailEdit:public MyRegEdit
{
Q_OBJECT
public:
MyEmailEdit(QWidget* parent = 0):MyRegEdit("^([\\dA-Za-z]{5,20})@(163|qq|gmail|icloud).com$",parent){}
};
#endif // MYEDIT_H
MyRegEdit::MyRegEdit(QString reg_str, QWidget *parent):QLineEdit(parent),rx(QRegExp(reg_str))
{
setValidator(new QRegExpValidator(rx,this));
}
MyRegEdit::~MyRegEdit()
{
}