Qt笔记-3-LineEdit中使用正则表达

前端之家收集整理的这篇文章主要介绍了Qt笔记-3-LineEdit中使用正则表达前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

有时候我们希望在输入框中定义我们规定的输入方式,比如需要输入数字的而不能让用户输入字母的,需要用户刚好输入10位数的ID等,我们可以在Qt中定义一个正则的方法,这样用户就只能按规定的方式才能被接受。这是C++ GUI Qt4第二版第二章的一个例子。
下面是gotocelldialog.cpp内容

#include <QtGui>

#include "gotocelldialog.h"

GoToCellDialog::GoToCellDialog(QWidget *parent) : QDialog(parent) { setupUi(this);//这个函数初始化窗口,还可以将符合on_objectName_signalName()命名习惯的的任意槽与相应的objectName_signalName()信号连接起来。
    //这个地方就是connect(lineEdit,SIGNAL(textChanged(const QString &)),this,SLOT(on_lineEdit_textChanged()));联系起来。

    QRegExp regExp("[A-Za-z][1-9][0-9]{0,2}");
    lineEdit->setValidator(new QRegExpValidator(regExp,this));

    connect(okButton,SIGNAL(clicked()),SLOT(accept()));
    connect(cancelButton,SLOT(reject()));
}

void GoToCellDialog::on_lineEdit_textChanged() { okButton->setEnabled(lineEdit->hasAcceptableInput());
}

可以看到里面的QRegExp,控制着用户第一个只能是字母(大小写均可),然后是1-9的一个数字,然后是可以重复0-2次的0-9的数字。其他方式的输入在lineEdit中都是看不到的。感觉挺实用。顺便附上其他两个文件中的内容

//main.cpp
#include <QApplication>

#include "gotocelldialog.h"

int main(int argc,char *argv[])
{
    QApplication app(argc,argv);
    GoToCellDialog *dialog = new GoToCellDialog;
    dialog->show();
    return app.exec();
}
//gotocelldialog.h
#ifndef GOTOCELLDIALOG_H
#define GOTOCELLDIALOG_H

#include <QDialog>

#include "ui_gotocelldialog.h"

class GoToCellDialog : public QDialog,public Ui::GoToCellDialog
{
    Q_OBJECT

public:
    GoToCellDialog(QWidget *parent = 0);

private slots:
    void on_lineEdit_textChanged();
};

#endif

猜你在找的正则表达式相关文章