![]() |
QT应用编程-QLineEditor设置IP与端口输入限定 - 可打印的版本 +- LightGunDiyer 光枪爱好者 (http://www.wukongxuetang.com/bbs) +-- 版块: 光枪原理与光枪DIY (http://www.wukongxuetang.com/bbs/forumdisplay.php?fid=1) +--- 版块: 光枪-软件编程 (http://www.wukongxuetang.com/bbs/forumdisplay.php?fid=4) +--- 主题: QT应用编程-QLineEditor设置IP与端口输入限定 (/showthread.php?tid=34) |
QT应用编程-QLineEditor设置IP与端口输入限定 - wukong - 05-08-2024 使用qt官方提供的整数输入方案,存在超限bug,也就是说你限定的数值,他会默认作为位数长度,比如限定0-255,实际可以输入的范围变成0-999 QRegularExpression regExp("^([0-9]|[1-9][0-9]|[1][0-9]{2}|2[0-4][0-9]|25[0-5])$"); QValidator *IntValidator = new QRegularExpressionValidator(regExp, this); ui->deviceIP1->setValidator(IntValidator); ui->deviceIP2->setValidator(IntValidator); ui->deviceIP3->setValidator(IntValidator); ui->deviceIP4->setValidator(IntValidator); ui->mask1->setValidator(IntValidator); ui->mask2->setValidator(IntValidator); ui->mask3->setValidator(IntValidator); ui->mask4->setValidator(IntValidator); ui->gateway1->setValidator(IntValidator); ui->gateway2->setValidator(IntValidator); ui->gateway3->setValidator(IntValidator); ui->gateway4->setValidator(IntValidator); ui->serverIP1->setValidator(IntValidator); ui->serverIP2->setValidator(IntValidator); ui->serverIP3->setValidator(IntValidator); ui->serverIP4->setValidator(IntValidator); QRegularExpression portRegex("^(?:6553[0-5]|655[0-2]\\d|65[0-4]\\d{2}|6[0-4]\\d{3}|5[0-9]\\d{4}|[1-9]\\d{0,3})$"); QRegularExpressionValidator* portValidator = new QRegularExpressionValidator(portRegex); ui->localport->setMaxLength(5); ui->localport->setValidator(portValidator); ui->remoteport->setMaxLength(5); ui->remoteport->setValidator(portValidator); 一,ip直接利用正则表达式进行设置 二,port端口范围1-65535,在使用正则表达式的同时,限定输入框最长输入长度 |