• 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()掩码的介绍:

     

     

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

     

     

     信号QLineEdit::returnPressed()的使用

    1. resize(600,600);
    2. QLineEdit *line=new QLineEdit(this);
    3. line->setGeometry(100,100,200,30);
    4. connect(line,&QLineEdit::returnPressed,[=]()
    5. {
    6. qDebug()<<line->text();
    7. });

     

    按下回车后 

     

    验证器:

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

    QValidator验证器:

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

                                                                                   最小值,最大值,父类

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

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

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

     

    自动补全

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

    QCompleter的构造函数

     

    QComplater的使用:

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

     

     

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

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

    1. QLabel *label1;//账号
    2. QLabel *label2;//密码
    3. QLineEdit *line1;//账号输入
    4. QLineEdit *line2;//密码输入
    5. QPushButton *push;//登录按钮

    2.在Widget.cpp中实现功能

    1. Widget::Widget(QWidget *parent)
    2. : QWidget(parent)
    3. , ui(new Ui::Widget)
    4. {
    5. ui->setupUi(this);
    6. resize(600,600);
    7. label1=new QLabel(this);
    8. label2=new QLabel(this);
    9. line1=new QLineEdit(this);
    10. line2=new QLineEdit(this);
    11. push=new QPushButton(this);
    12. line1->setPlaceholderText("请输入账号");//输入提示信息
    13. line2->setPlaceholderText("请输入密码");//输入提示信息
    14. label1->setText("账号:");
    15. label2->setText("密码:");
    16. label1->setGeometry(100,100,50,30);
    17. label2->setGeometry(100,150,50,30);
    18. line1->setGeometry(100+label1->width(),100,150,30);
    19. line2->setGeometry(100+label2->width(),150,150,30);
    20. line2->setEchoMode(QLineEdit::Password);//设置密码类型
    21. line1->setMaxLength(12);//设置输入长度
    22. line2->setMaxLength(12);//设置输入长度
    23. push->setText("登录");
    24. push->setGeometry(150,250,100,40);
    25. //设置自动补全
    26. QStringList list1;//账号
    27. for(int i=0;i<10;i++)
    28. {
    29. int p=1111111*i;
    30. list1<<QString::number(p);//添加账号,int转String
    31. }
    32. for (auto i:list1) {
    33. qDebug()<<i;
    34. }
    35. QCompleter *com1=new QCompleter(list1,this);
    36. com1->setCaseSensitivity(Qt::CaseInsensitive);//设置大小写不敏感
    37. line1->setCompleter(com1);
    38. QStringList list2;//存放密码
    39. for(int i=0;i<10;i++)
    40. {
    41. list2<<QString::number(1111111*i);//添加密码
    42. }
    43. connect(push,&QPushButton::clicked,[=]()//点击按钮,判断账号密码是否正确
    44. {
    45. for(auto m:list1)
    46. {
    47. if(line1->text()==m&&line2->text()==m)
    48. {
    49. QMessageBox::information(this,"提示","登录成功",QMessageBox::Ok);
    50. return;
    51. }
    52. }
    53. QMessageBox::information(this,"提示","登录失败",QMessageBox::Ok);
    54. });
    55. }

     

     

  • 相关阅读:
    axios+vue 请求时如何携带cookie
    POSTGRES 15 流复制搭建主备
    互联网技术发展内卷后的出路——iVX的诞生
    【网络服务&数据库教程】07 ELK日志解决方案
    文件上传漏洞第十六关十七关
    一文搞懂内部类
    用例篇 | 单元测试用例复用到集成测试?Testlet Library来助力(上)
    基于C#的壁纸管理器(插件版) - 开源研究系列文章 - 个人小作品
    【漏洞复现】NUUO摄像头存在远程命令执行漏洞
    javaWeb医疗管理系统
  • 原文地址:https://blog.csdn.net/qq_45303986/article/details/127733323