(这个水印能不能去掉。。看着好恶心)
实现:和wins中ip输入框基本相同。有焦点自动跳转;判断数字0-255;每个框最多输三位;如果有错误会报错......
//在edtIP定义的地方加入,edtIP是在ui中直接添加的,LineEdit的形式
ui.edtIP->setInputMask("000.000.000.000");//使用掩码设置输入格式,也可以在ui中直接改
connect(ui.edtIP, &QLineEdit::textChanged, this, &CommunicateModify::onIPTextChanged);//建立信号与槽
//槽函数,用来实现一系列功能
void CommunicateModify::onIPTextChanged(const QString& text)
{
QLineEdit* lineEdit = qobject_cast<QLineEdit*>(sender());
if (lineEdit) {
QString part = lineEdit->text();
if (part.isEmpty()) {
return;
}
QStringList parts = part.split(".");//以.为分割把IP地址分为多个部分
bool valid = true;
for (const QString& p : parts) {
int value = p.toInt();
if (value < 0 || value > 255) {
valid = false;
break;
}
}
if (!valid) {
// 输入不合法,可以进行相应处理,比如清空输入或给出提示
QMessageBox::warning(nullptr, "Warning", QStringLiteral("IP地址输入错误!"));
lineEdit->clear();
}
}
}