• 7920阅读
  • 8回复

[提问]lineEdit设置成只输入数字后,怎么还能输入“+”号 [复制链接]

上一主题 下一主题
离线alading514
 

只看楼主 倒序阅读 楼主  发表于: 2011-01-13
我是这样设置的:
QValidator *validator;
                      .
                      .
                      .
validator = new QIntValidator(1,9999,this);
ui->lineEdit->setValidator(validator);

目的是在lineEdit里只能输入1到9999数字符号,但是我发现可以输入一个“+”号,这个问题怎么解决。
离线roywillow

只看该作者 1楼 发表于: 2011-01-13
其实我感觉如果可以的话可以用QSpinBox代替,隐藏掉旁边的箭头后就跟LineEdit没啥差别了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线dbzhang800

只看该作者 2楼 发表于: 2011-01-13
引用楼主alading514于2011-01-13 09:59发表的 lineEdit设置成只输入数字后,怎么还能输入“+”号 :
我是这样设置的:
QValidator *validator;
                      .
                      .
                      .
.......

没什么矛盾啊,"+11" 等完全满足你设置的int的条件

如果你是限定只能输入数字,可以考虑正则。 用 int的话,你可以fix掉+号,就如同 spinbox所做的,可以输入,但确认后+号消失
离线梅克斯
只看该作者 3楼 发表于: 2011-01-13
继承QValidator,写一个满足你需求的validator就行
离线alading514

只看该作者 4楼 发表于: 2011-01-14
引用第1楼roywillow于2011-01-13 14:05发表的 :
其实我感觉如果可以的话可以用QSpinBox代替,隐藏掉旁边的箭头后就跟LineEdit没啥差别了

如何隐藏QSpinBox旁边的箭头呢?
离线alading514

只看该作者 5楼 发表于: 2011-01-14
我试过了 QSpinBox也可以输入+号 跟我现在的效果一样
看来得用正则法定义了
只看该作者 6楼 发表于: 2011-01-14
连接 lineEdit,SIGNAL(textChanged(QString))信号到一个槽

槽:  
  bool ok;
  lineEdit->text().toInt(&ok);

    if (!ok)
    {
        lineEdit->backspace();
        return;
    }

+ -号都是无法出现在任何地方的.
[ 此帖被算了不说了在2011-01-14 14:50重新编辑 ]
离线alading514

只看该作者 7楼 发表于: 2011-02-23
楼上的方法可以实现,谢谢

[ 此帖被alading514在2011-02-23 09:37重新编辑 ]
离线alading514

只看该作者 8楼 发表于: 2011-02-23
再提个问题,我这有十个LINEEDIT控件 如何用一个程序进行修改呢
快速回复
限100 字节
 
上一个 下一个