• 16668阅读
  • 9回复

Qt中实现IP输入框 [复制链接]

上一主题 下一主题
离线baggioyao
 
只看楼主 倒序阅读 楼主  发表于: 2010-05-04
QT中居然没有IP输入控件。。。

于是我这样用了 lineEdit_ip->setInputMask("000.000.000.000;");但是效果很不好,不知为何光标是粗体的,而且不好用。查过网上人家的实现方法,很复杂,个人认为就一个IP输入框,没必要这么复杂,请问有什么简单的实现方法吗?
离线paranoid
只看该作者 1楼 发表于: 2010-05-04
可以使用正则表达式验证器QRegExpValidator
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
QRegExpValidator v(rx, 0);
QLineEdit le;
le.setValidator(&v);
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2010-05-05
引用第1楼paranoid于2010-05-04 16:27发表的  :
可以使用正则表达式验证器QRegExpValidator
QRegExp rx("((2[0-4]\d|25[0-5]|[01]?\d\d?)\.){3}(2[0-4]\d|25[0-5]|[01]?\d\d?)");
QRegExpValidator v(rx, 0);
QLineEdit le;
le.setValidator(&v);



这个不错!!!

如果能像windows配置那样:那些点早就在显示出来,那就更好了
离线iiiyyyhhhsss

只看该作者 3楼 发表于: 2010-05-05
原来楼上只需要多加一句即可:
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
QRegExpValidator v(rx, 0);
QLineEdit le;
le.setValidator(&v);
le.setInputMask("000.000.000.000");
离线iiiyyyhhhsss

只看该作者 4楼 发表于: 2010-05-05
引用第3楼iiiyyyhhhsss于2010-05-05 14:05发表的  :
原来楼上只需要多加一句即可:
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
QRegExpValidator v(rx, 0);
QLineEdit le;
le.setValidator(&v);
le.setInputMask("000.000.000.000");
.......



发现这个还是有问题,setInput()和setValidator好像不能同时使用....同时使用的话,正则表达式就没有效果了...
离线kevinshi
只看该作者 5楼 发表于: 2010-09-16
引用第4楼iiiyyyhhhsss于2010-05-05 16:30发表的 :
发现这个还是有问题,setInput()和setValidator好像不能同时使用....同时使用的话,正则表达式就没有效果了...

离线mewjerry
只看该作者 6楼 发表于: 2011-04-04
QRegExp rx("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
QRegExpValidator v(rx, 0);
QLineEdit le;
le.setValidator(&v);
le.setInputMask("000.000.000.000;0");//只要加上;0保证有默认值即可使得正则和mask同时生效。
.......
离线panqingliang
只看该作者 7楼 发表于: 2011-08-04
回 6楼(mewjerry) 的帖子
这个是有问题的, 如果我输入0段的话, 那么那个0就显示不出来
离线mewjerry
只看该作者 8楼 发表于: 2011-10-09
回 7楼(panqingliang) 的帖子
你在什么环境下测试的?这段代码的linedit一开始就有12个0作为mask,如果输入0,就会和其它数字一样。
离线panqingliang
只看该作者 9楼 发表于: 2011-10-10
回 8楼(mewjerry) 的帖子
我当然是在linux环境测试的呀
快速回复
限100 字节
 
上一个 下一个