QT开发中文网

qt c++示例 lineedit限制数字和取值范围为0-20000

以下是一个示例代码,使用QIntValidator来实现对LineEdit输入的数字限制和取值范围控制:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w;
    QVBoxLayout *layout = new QVBoxLayout(&w);

    QLineEdit *lineEdit = new QLineEdit(&w);
    QIntValidator *validator = new QIntValidator(0, 20000, &w);
    lineEdit->setValidator(validator);
    layout->addWidget(lineEdit);

    w.show();

    return a.exec();
}

上述代码中,我们创建了一个QLineEdit对象,并通过QIntValidator类的构造函数设置了最小值为0、最大值为20000,然后将该验证器对象设置到LineEdit中,从而限制了用户只能输入0-20000之间的整数。

如果需要对用户在LineEdit中输入的内容进行验证或处理,可以使用QLineEdit::textChanged()信号或者QLineEdit::returnPressed()信号等。例如,下面的代码演示了如何使用textChanged()信号来显示当前LineEdit中输入的数字:

#include <QtWidgets>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    QWidget w;
    QVBoxLayout *layout = new QVBoxLayout(&w);

    QLineEdit *lineEdit = new QLineEdit(&w);
    QIntValidator *validator = new QIntValidator(0, 20000, &w);
    lineEdit->setValidator(validator);
    layout->addWidget(lineEdit);

    QLabel *label = new QLabel(&w);
    layout->addWidget(label);

    QObject::connect(lineEdit, &QLineEdit::textChanged, [&label](const QString &text) {
        bool ok;
        int value = text.toInt(&ok);
        if (ok && value >= 0 && value <= 20000) {
            label->setText(QString("输入的数字为:%1").arg(value));
        } else {
            label->setText("请输入0-20000之间的整数");
        }
    });

    w.show();

    return a.exec();
}

上述代码中,我们创建了一个QLabel对象,并将其添加到窗口中。然后,我们通过QObject::connect()函数连接了LineEdit的textChanged()信号和一个Lambda表达式。该Lambda表达式会在用户输入内容时被调用,根据用户输入的内容判断是否符合要求,并将结果显示在Label中。这样,用户就可以实时看到自己输入的数字是否合法了。

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://qt.0voice.com/?id=1296

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?