【问题标题】:How to use QlineEdit to enter integer values如何使用 QlineEdit 输入整数值
【发布时间】:2014-11-06 11:00:46
【问题描述】:

我正在尝试使用QlineEdit

当我运行程序并将该值存储为变量以供以后使用时,如何在编辑栏中输入一个值。到目前为止,我只知道如何使用

输入文本
void parameter_settings::on_lineEdit_textEdited(const QString &arg1)

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

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

【问题讨论】:

  • 为什么不使用 QSpinBox ?
  • 范围相当大;从1 - 124000,用户想直接输入
  • QSpinBox 仍然适用于该范围。您可以设置最小值和最大值,如果需要,可以通过继承 QSpinBox 进行自定义。

标签: c++ qt qlineedit


【解决方案1】:

我不完全确定您的问题是什么,但您可以使用命令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 在 cmets 中提到的,如果您只需要输入整数,您可能应该使用 QSpinBox,它开箱即用并附带额外的句柄可以轻松增加和减少值。

【讨论】:

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

使用这个方法:

QString str = QString::number(4.4);
ui->lineEdit->setText(str);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2017-01-05
    相关资源
    最近更新 更多