2014-11-06 101 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

相关问题