2012-09-03 33 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