• 13472阅读
  • 6回复

[求职]QDoubleValidator不起作用 [复制链接]

上一主题 下一主题
离线tfangxin
 
只看楼主 倒序阅读 楼主  发表于: 2012-12-28
在qtableview中自定义委托qlineedit,并对输入进行限制

QWidget *FlowDelegate::createEditor(QWidget *parent, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
        QLineEdit *lineedit = new QLineEdit(parent);
        QIntValidator *validator = new QIntValidator(0, 100, parent);
        lineedit->setValidator(validator);
        return lineedit;
}发现可以成功限制输入0-100的整数
但使用

    QLineEdit *lineedit = new QLineEdit(parent);
    QDoubleValidator *validator = new QDoubleValidator(0, 100, 2, parent);
    lineedit->setValidator(validator);
却不能限制大小 但能限制两位小数 如999.99


求教~~~

离线it小熊
只看该作者 1楼 发表于: 2012-12-28
不是可以用 setRange 这个成员函数么。
苦逼 的 程序猿
离线tfangxin
只看该作者 2楼 发表于: 2012-12-28
setrange也会出现这样的情况

离线tfangxin
只看该作者 3楼 发表于: 2012-12-28
回 1楼(it小熊) 的帖子
好像知道一些了  
系统并未默认已经输入完成 比如999.99e-1的话也是合理的输入
但如果我不想用到科学计数法 只想限制0-100的小数的话呢
离线weicheichei

只看该作者 4楼 发表于: 2013-01-04
QDoubleValidator*validator=new QDoubleValidator(0,99,2,this);

    validator->setNotation(QDoubleValidator::StandardNotation);
    ui->lineEdit->setValidator(validator);
这样就行了
离线tfangxin
只看该作者 5楼 发表于: 2013-01-21
回 4楼(weicheichei) 的帖子
谢谢 指定了不使用科学计数法之后确实可以了
但是如果把范围换成-5到10 又不可以了 不知道为何
比如以下
    QDoubleValidator *validator = new QDoubleValidator(-5, 10, 2, parent);
    validator->setNotation(QDoubleValidator::StandardNotation);
    lineedit->setValidator(validator);
就可以输入99.99
离线yieryi_

只看该作者 6楼 发表于: 2013-10-14
我也想知道,好奇怪,这是一个bug吗
快速回复
限100 字节
 
上一个 下一个