QT 在QLineEdit中输入IP地址

QLineEdit控件为m_robotIpLineEdit,效果图
在这里插入图片描述
rx为IP地址输入的正则表达式,每三位有分隔,将每个数字限制在0~255之间

QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");

QValidator类用于检验输入是否有效,用rx来验证ui.m_robotIpLineEdit的输入

QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
 QValidator *validator = new QRegExpValidator(rx, ui.m_robotIpLineEdit);
 ui.m_robotIpLineEdit->setValidator(validator);
 ui.m_robotIpLineEdit->setInputMask(QString("000.000.000.000;0"));  // setInputMask设置格式化字符串的掩码,“000.000.000.000;”是一个IP地址,加上;0保证有默认值为0,可使正则和mask同时生效。

无法输入不在0~255之间的数字。

之后在读取ui.m_robotIpLineEdit的内容时要判断内容是默认模板000.000.000.000还是有效输入

你可能感兴趣的:(qt,C++)