2012-09-03 45 views
2

我有一个QLineEdit,我用它来获得双倍。但是有没有更合适的方法来获得它?这是我的代码。替代QLineEdit获得双倍

ui->lineEdit->setValidator(new QIntValidator(this)); 

QString XMAX=ui->lineEdit->text(); 
double xmax=XMAX.toDouble(); 

回答

4

输入双精度的规范方式当然是使用QDoubleSpinBox

如果您坚持使用QLineEdit,则应该将其与QDoubleValidator一起使用,而不是QIntValidator。我只想补充完整性检查的东西已进入编辑字段:

double xmax; 
if (ui->lineEdit->text()->isEmpty()) 
    xmax = numeric_limits<double>::quiet_NaN(); 
else 
    xmax = ui->lineEdit->text().toDouble(); 
+1

使用QDoubleSpinBox我必须有向上和向下箭头,这是我不想。 – SamuelNLP

+0

@SamuelNLP:好的,然后坚持行编辑。只需使用正确的验证程序并检查行编辑是否为空。 – Mehrwolf

+2

@SamuelNLP摆脱箭头,你可以简单地使用'QDoubleSpinBox'的方法'setButtonSymbols(QAbstractSpinBox :: NoButtons)' – Pankrates