Qt笔记-3-LineEdit中使用正则表达
发布时间:2020-12-14 01:14:00 所属栏目:百科 来源:网络整理
导读:有时候我们希望在输入框中定义我们规定的输入方式,比如需要输入数字的而不能让用户输入字母的,需要用户刚好输入10位数的ID等,我们可以在Qt中定义一个正则的方法,这样用户就只能按规定的方式才能被接受。这是C++ GUI Qt4第二版第二章的一个例子。 下面是g
有时候我们希望在输入框中定义我们规定的输入方式,比如需要输入数字的而不能让用户输入字母的,需要用户刚好输入10位数的ID等,我们可以在Qt中定义一个正则的方法,这样用户就只能按规定的方式才能被接受。这是C++ GUI Qt4第二版第二章的一个例子。 #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
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- .net – 不会从嵌套的Accordion控件触发事件
- vb.net – 用于Visual Basic的Rename.Refactor的Visual Stu
- xcode – 当我打开RStudio时,如何禁用弹出的“git requirem
- oracle 虚拟专用数据库详细介绍
- .net – 如何从postgresql数据库生成edmx
- swift – NSUserDefaults无法使用Watch OS2在Xcode beta上工
- VB.Net视频——开篇引共鸣
- [Swift Weekly Contest 116]LeetCode963. 最小面积矩形 II
- vb.net or vb判断文件是否执行中(打开状态)
- [Oracle]Oracle部分函数