2014-11-06 100 views
1

我正在嘗試使用QlineEdit如何使用QlineEdit輸入整數值

當我運行程序時,如何在編輯欄中輸入一個值,並將該值存儲爲變量以備後用。到目前爲止,我只發現瞭如何使用

void parameter_settings::on_lineEdit_textEdited(const QString &arg1) 

{ 
    ui->lineEdit->setText(""); 
} 

我有要求用戶在特定範圍內輸入一個值的GUI來輸入文字。該值將作爲變量存儲以備後用。我已閱讀驗證器,但無法按預期工作。

+6

爲什麼不使用QSpinBox? – Pratham 2014-11-06 11:12:41

+0

範圍很大;從1 - 124000,用戶想直接輸入 – Duanne 2014-11-06 11:51:53

+0

仍然QSpinBox將適用於該範圍。您可以設置最小值和最大值,如果需要,可以通過繼承QSpinBox來進行定製。 – Pratham 2014-11-07 08:47:54

回答

4

我並不完全相信你的問題是什麼,但你可以從一個QLineEdit的輸入與命令text():使用

QString input = ui->lineEdit->text(); 

和一個整數輸入:

int integer_value = ui->lineEdit->text().toInt(); 

由於你提到了驗證器:你可以使用驗證器來讓用戶只在第一個地方插入整數到QLineEdit中。有不同的,但我通常喜歡使用'RegEx'驗證器。在這種情況下:

QRegExpValidator* rxv = new QRegExpValidator(QRegExp("\\d*"), this); // only pos 
QRegExpValidator* rxv = new QRegExpValidator(QRegExp("[+-]?\\d*"), this); // pos and neg 
ui->lineEdit->setValidator(rxv); 

注:作爲由Pratham的評論中提到,如果你只需要整數輸入你應該使用QSpinBox該做這一切外的即裝即用,並配額外的手柄容易增加和減少價值。

+0

我添加了行QString input = ui-> lineEdit-> text();但是現在我根本無法將數據輸入到lineEdit中。我想要的是一個lineEdit,它允許用戶在運行程序時在特定範圍內輸入整數值。該值將被存儲爲一個變量,以備後用,例如頻率。對於較差的解釋先前抱歉,並感謝您的幫助 – Duanne 2014-11-06 11:50:11

+0

對於特定範圍的QLineEdit和[QSlider](http://qt-project.org/doc/qt-4.8/qslider.html)的組合連接使用他們的一些SLOTS和信號可能是有用的。但你應該先讓lineed工作。檢查你在代碼 – Bowdzone 2014-11-06 12:00:11

+0

正確的位置檢索它的價值我一直在試圖修復它,但lineEdit不允許輸入了。我縮進了四個空格來粘貼我的代碼,但它沒有以正確的格式顯示,我怎麼可以添加它 – Duanne 2014-11-06 12:37:33

相關問題