如何使用QLineEdit输入整数值

4

我正在尝试使用QlineEdit

当我运行程序并将其值存储为变量以供以后使用时,我该如何在编辑栏中输入值。到目前为止,我只发现可以使用文本来输入。

void parameter_settings::on_lineEdit_textEdited(const QString &arg1)

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

我有一个GUI,需要用户输入特定范围内的值。该值将作为变量存储以供以后使用。我已经阅读了验证器的相关内容,但无法按照预期工作。


7
为什么不使用 QSpinBox? - Pratham
范围相当大,从1到124000,用户希望直接输入。 - Duanne
仍然可以使用 QSpinBox 来处理该范围。您可以设置最小值和最大值,如果需要,可以通过继承 QSpinBox 进行自定义。 - Pratham
2个回答

7

我不完全确定您的问题是什么,但您可以使用命令text()从QLineEdit获取输入:

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,它可以轻松地增加和减少值,并且自带此功能。


我添加了以下代码行: QString input = ui->lineEdit->text();但现在我无法向lineEdit中输入数据。我想要的是一个lineEdit,它允许用户在程序运行时输入特定范围内的整数值。该值将被存储为变量以供后续使用,例如频率。之前的解释可能有些不清楚,谢谢您的帮助。 - Duanne
对于特定范围,使用一个QLineEdit和一个连接其SLOTS和SIGNALS的QSlider的组合可能很有用。但是,你应该先确保LineEdit正常工作。检查您在代码中是否在正确的位置检索其值。 - Bowdzone
我一直在尝试修复它,但是lineEdit不再允许输入了。我缩进了四个空格来粘贴我的代码,但它没有以正确的格式显示,我该如何添加它? - Duanne
好的,我已经解决了那个问题。这是如何将lineEdit的值设置为输入的文本?ui->lineEdit->setText(text()); 这是我从QT帮助部分得到的。 - Duanne
您可能需要查看一些Qt的示例并了解它们。这是非常基础的东西,抱歉。 - Bowdzone

0
请使用这个方法:
QString str = QString::number(4.4);
ui->lineEdit->setText(str);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接