关键词:Qt 正则表达式 QRegExp QMessageBox
1、建立Qt Application工程,设计UI[一个输入框,一个按钮];
2、Widget.h文件:
#define WIDGET_H
#include <QWidget>
#include <QRegExp>
#include <QMessageBox>
namespace Ui @H_403_101@{
class Widget@H_403_101@;
@H_403_101@ }
class Widget @H_403_101@: public QWidget
@H_403_101@ {
Q_OBJECT
public @H_403_101@:
Widget@H_403_101@(QWidget @H_403_101@*parent @H_403_101@= 0@H_403_101@); explicit
@H_403_101@Widget@H_403_101@(); ~
private @H_403_101@:
Widget @H_403_101@*ui@H_403_101@; Ui@H_403_101@::
QRegExp rx@H_403_101@;
QMessageBox msgBox@H_403_101@;
private @H_403_101@:
void init@H_403_101@(); //初始化函数
private slots@H_403_101@:
void checkPwd@H_403_101@();
@H_403_101@};
#endif // WIDGET_H
3、Widget.cpp
Widget@H_403_101@::Widget@H_403_101@(QWidget @H_403_101@*parent@H_403_101@) @H_403_101@:
@H_403_101@(parent@H_403_101@), QWidget
new Ui@H_403_101@::Widget@H_403_101@) ui@H_403_101@(
@H_403_101@{
setupUi@H_403_101@(this@H_403_101@); ui@H_403_101@->
@H_403_101@->init@H_403_101@(); this
@H_403_101@}
Widget@H_403_101@::~Widget@H_403_101@()
@H_403_101@{
delete ui@H_403_101@;
@H_403_101@}
Widget@H_403_101@::init@H_403_101@() void
@H_403_101@{
//建立信号和响应函数
ui@H_403_101@->pushButton@H_403_101@,SIGNAL@H_403_101@(clicked@H_403_101@()),SLOT@H_403_101@(checkPwd@H_403_101@())); connect@H_403_101@(
setPatternSyntax@H_403_101@(QRegExp@H_403_101@::RegExp@H_403_101@); rx@H_403_101@.
//对大小写字母敏感,即区分大小写
setCaseSensitivity@H_403_101@(Qt@H_403_101@::CaseSensitive@H_403_101@); rx@H_403_101@.
//匹配格式为所有大小写字母和数字组成的字符串,位数不限
setPattern@H_403_101@(QString@H_403_101@("^[A-Za-z0-9]+$"@H_403_101@)); rx@H_403_101@.
@H_403_101@}
Widget@H_403_101@::checkPwd@H_403_101@() void
@H_403_101@{
pwd @H_403_101@= ui@H_403_101@->lineEdit@H_403_101@->text@H_403_101@(); QString
@H_403_101@(pwd@H_403_101@.isEmpty@H_403_101@()) //检测密码输入框是不是为空 if
@H_403_101@ {
label2@H_403_101@->setText@H_403_101@("Password cant be empty!"@H_403_101@); ui@H_403_101@->
label2@H_403_101@->setStyleSheet@H_403_101@("color: rgb(255, 78, 25);"@H_403_101@);; ui@H_403_101@->
@H_403_101@ }
else
@H_403_101@ {
label2@H_403_101@->setText@H_403_101@(""@H_403_101@); ui@H_403_101@->
@H_403_101@(rx@H_403_101@.exactMatch@H_403_101@(pwd@H_403_101@)) if
@H_403_101@ {
setText@H_403_101@("The password format is Right"@H_403_101@); msgBox@H_403_101@.
exec@H_403_101@(); msgBox@H_403_101@.
@H_403_101@ }
else
@H_403_101@ {
setText@H_403_101@("Sorry,The password format is wrong!!\n msgBox@H_403_101@.
\nPlease reenter your password."@H_403_101@);
exec@H_403_101@(); msgBox@H_403_101@.
@H_403_101@ }
@H_403_101@ }
@H_403_101@}
@H_403_101@4、main.cpp不用修改。
@H_403_101@5、运行结果如下:
@H_403_101@
@H_403_101@当输入特殊字符时会提示错误:
@H_403_101@//------------------------------ THE END @H_403_101@-----------------------------