QLineEdit

QLindEdit部件是一个单行的文本编辑器,它允许用户输入和编辑单行的纯文本内容,拥有许多功能,下面一一介绍。

QLineEdit的构造函数:

常见的一些函数:

setText(),insert()设置内容
text()

获取控件内容

setEchoMode(QLineEdit::Normal)设置输入形式
setMaxLength()设置输入的最大长度
isReadOnly()设置只读
setChanged()监测内容是否变化
setInputMask()输入掩码来限制内容
hasAcceptableInput()检测是否符合掩码规则
setFocus()获得焦点
信号:
QLineEdit::returnPressed
按下回车
setValidator()设置验证器
setPlaceholderText()输入提示内容

setEchoMode(QLineEdit::xxx)设置输入格式:

QLineEdit::Normal在输入字符时显示字符。这是默认值。
QLineEdit::NoEcho不显示任何内容。这可能适用于密码,甚至密码的长度也应保密

QLineEdit::Password

显示与平台相关的密码掩码字符,而不是实际输入的字符。
QLineEdit::PasswordEchoOnEdit在编辑时显示输入的字符,否则显示字符。password

第一种:直接输出 

第二种:输入时不会显示任何内容 

第三种:用●代替内容 

第四种: 

输入时,可以看到

 不输入时,变成●

 inputMask()掩码的介绍:

 

 

    resize(600,600);
    QLineEdit *line=new QLineEdit(this);
    line->setGeometry(100,100,200,30);
    line->setInputMask(">AAAAAAAAA!");

 

 

 信号QLineEdit::returnPressed()的使用

    resize(600,600);
    QLineEdit *line=new QLineEdit(this);
    line->setGeometry(100,100,200,30);
    connect(line,&QLineEdit::returnPressed,[=]()
    {
        qDebug()<<line->text();
    });

 

按下回车后 

 

验证器:

在QLineEdit中可以使用验证器来对输入进行约束:

QValidator验证器:

整形验证器: QValidator *vdr=new QIntValidator(min,max,parent);

                                                                               最小值,最大值,父类

浮点型验证器:QValidator *vdr1=new QDoubleValidator(min,max,number,parent);

                                                                             最小值,最大值,小数点后位数,父类 

    QLineEdit *line=new QLineEdit(this);
    QValidator *vdr=new QIntValidator(100,200,this);//值的取值范围100-200(Int型) 
    QValidator *vdr1=new QDoubleValidator(10.0,299.99,5,this);//值的取值范围10-299.99(double型)
    line->setValidator(vdr);//设置验证器

 

自动补全:

QLineEdit中也提供了强大的自动补全的功能,使用QCompleter类实现。

QCompleter的构造函数

 

QComplater的使用:

    resize(600,600);
    QLineEdit *line=new QLineEdit(this);
    line->move(100,100);
    //设置内容
    QStringList list1;
    list1<<"11111"<<"22222"<<"33333";
    QCompleter *complate=new QCompleter(list1,this);
    complate->setCaseSensitivity(Qt::CaseSensitive);//设置大小写不敏感
    line->setCompleter(complate);//设置自动补全

 

 

 使用QLineEdit实现一个登录页面:

1.在widget.h中添加以下控件


    QLabel *label1;//账号
    QLabel *label2;//密码
    QLineEdit *line1;//账号输入
    QLineEdit *line2;//密码输入
    QPushButton *push;//登录按钮

2.在Widget.cpp中实现功能

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    resize(600,600);
    label1=new QLabel(this);
    label2=new QLabel(this);
    line1=new QLineEdit(this);
    line2=new QLineEdit(this);
    push=new QPushButton(this);
    line1->setPlaceholderText("请输入账号");//输入提示信息
    line2->setPlaceholderText("请输入密码");//输入提示信息
    label1->setText("账号:");
    label2->setText("密码:");
    label1->setGeometry(100,100,50,30);
    label2->setGeometry(100,150,50,30);
    line1->setGeometry(100+label1->width(),100,150,30);
    line2->setGeometry(100+label2->width(),150,150,30);
    line2->setEchoMode(QLineEdit::Password);//设置密码类型
    line1->setMaxLength(12);//设置输入长度
    line2->setMaxLength(12);//设置输入长度
    push->setText("登录");
    push->setGeometry(150,250,100,40);
    //设置自动补全
    QStringList list1;//账号
    for(int i=0;i<10;i++)
    {
        int p=1111111*i;
        list1<<QString::number(p);//添加账号,int转String
    }
    for (auto i:list1) {
        qDebug()<<i;
    }
    QCompleter *com1=new QCompleter(list1,this);
    com1->setCaseSensitivity(Qt::CaseInsensitive);//设置大小写不敏感
    line1->setCompleter(com1);
    QStringList list2;//存放密码
    for(int i=0;i<10;i++)
    {
        list2<<QString::number(1111111*i);//添加密码
    }
    connect(push,&QPushButton::clicked,[=]()//点击按钮,判断账号密码是否正确
    {
      for(auto m:list1)
       {
           if(line1->text()==m&&line2->text()==m)
           {
               QMessageBox::information(this,"提示","登录成功",QMessageBox::Ok);
               return;
           }
       }
      QMessageBox::information(this,"提示","登录失败",QMessageBox::Ok);
    });
}

 

 

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值