查看完整版本: [-- Qt中实现IP输入框 --]

QTCN开发网 -> Qt基础编程 -> Qt中实现IP输入框 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

baggioyao 2010-05-04 15:09

Qt中实现IP输入框

QT中居然没有IP输入控件。。。

于是我这样用了 lineEdit_ip->setInputMask("000.000.000.000;");但是效果很不好,不知为何光标是粗体的,而且不好用。查过网上人家的实现方法,很复杂,个人认为就一个IP输入框,没必要这么复杂,请问有什么简单的实现方法吗?

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);

iiiyyyhhhsss 2010-05-05 13:58
引用第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 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");

iiiyyyhhhsss 2010-05-05 16:30
引用第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 2010-09-16 09:36
引用第4楼iiiyyyhhhsss于2010-05-05 16:30发表的 :
发现这个还是有问题,setInput()和setValidator好像不能同时使用....同时使用的话,正则表达式就没有效果了...


mewjerry 2011-04-04 17:36
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 2011-08-04 11:05
这个是有问题的, 如果我输入0段的话, 那么那个0就显示不出来

mewjerry 2011-10-09 21:15
你在什么环境下测试的?这段代码的linedit一开始就有12个0作为mask,如果输入0,就会和其它数字一样。

panqingliang 2011-10-10 15:06
我当然是在linux环境测试的呀


查看完整版本: [-- Qt中实现IP输入框 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled