要让输入框只能输入IP地址,首先会想到的就是使用正则表达式。QLineEdit也支持使用正则表达式,就像这样:image.png

    QLineEdit支持设置验证器来限制输入的内容,QRegExpValidator是其中一种。正则表达式写法有很多,以上的表达式可以参考一下:

\\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\b

    

    QLineEdit还有另一种方式来限制输入的内容,那就是设置掩码(setInputMask),例如:

image.png

  分号前面的0表示可以输入任何数字,也可以不输入。分号后面的"_"表示没有输入地方用"_"替代。分隔0的点则直接显示出来。设置掩码后我们只能输入掩码所占的位置。如下

image.png

我们使用了xxxx占了四个位置(小写x表示可以输入任意字符),所以在QLineEdit中最多只能输入四个字符。可用掩码及其含义可以参考下图:

image.png


直接使用掩码方式不能很好的限制IP的输入,因为没办法控制范围,但是有个好处是它可以把点先显示出来。让人更容易理解要输入的是什么。可以结合验证器和掩码

image.png


测试环境:Qt5.9.6