예제 #1
0
void NumberEdit::texttChanged(const QString& text) {
    QString in=text;
    if (!suffix.isEmpty()) {
        if (text.endsWith(suffix)) {
            in=in.remove(text.size()-suffix.size(), suffix.size());
        }
    }
    double d=extractVal(text);
    setViewOK();
    if ((checkMax) && (d>max)) {
        d=max;
        setViewError();
    }//setValue(d);}
    if ((checkMin) && (d<min)) {
        d=min;
        setViewError();
    }//setValue(d); }

    //std::cout<<d<<std::endl;
    //QMessageBox::information(this, "", QString("value is %1").arg(d));
    else emit valueChanged(d);
    if ((!suffix.isEmpty()) && (!text.contains(suffix))) {
        int cp=cursorPosition();
        setText(text+suffix);
        setCursorPosition(cp);
    }
}
예제 #2
0
void NumberEdit::stepDown() {
    double d=value();
    d-=singleStep;
    if (checkMin) if (d<min) d=min;
    if (checkMax) if (d>max) d=max;
    setValue(d);
    setViewOK();
}
예제 #3
0
void NumberEdit::setValue(double value) {
    double v=value;
    if (v!=0 && v==extractVal(text())) return;
    if (checkMin) if (v<min) v=min;
    if (checkMax) if (v>max) v=max;
    QString t;
    t.setNum(v, 'f', decimals);
    setText(t+suffix);
    setViewOK();
}