QT LineEdit控件全面详解

本文详细的介绍了LineEdit控件的各种操作,例如:编辑框的状态、边框、密码框、限制输入类型、对齐方式、验证器的使用、样式表的应用等操作。

LineEdit允许用户输入和编辑单行纯文本,提供了很多有用的编辑功能,包括:边框、密码框、限制输入类型、对齐方式、验证器的使用、撤消和重做、剪切和粘贴、以及拖放(setDragEnabled())通过改变输入框的echoMode(),同时也可以设置为一个“只写”字段,用于输入密码等。文本的长度可以被限制为maxLength(),可以使用一个validator()或inputMask()来任意限制文本。当在同一个输入框中切换验证器和输入掩码的时候,最好是清除验证器或输入掩码,防止不确定的行为。

本文作者原创,转载请附上文章出处与本文链接。

QT LineEdit控件全面详解目录

1. 编辑状态

2. 隐藏边框

3. 限制字节

4. 密码框

5. 类型限制

6. 对齐方式

7. 添加图标

8. 验证器

9. 样式表


示例图片:

1. 编辑状态

  NoFocus设置取消焦点,所以编辑不了。setEnabled禁用启用控件。

    ui->lineEdit->setText("不可修改");
    ui->lineEdit->setFocusPolicy(Qt::NoFocus);                      //能否编辑
    //ui->lineEdit->setEnabled(false);//true                        //控件禁用

2. 隐藏边框

  隐藏边框样式

    ui->lineEdit->setStyleSheet("background:transparent;border-width:0;border-style:outset"); //不显示边框

3. 限制字节

  限制可以输入的字节数

    ui->lineEdit_2->setPlaceholderText("You can enter up to 6 characters");
    ui->lineEdit_2->setMaxLength(6);                                //最多输入6个字符

4. 密码框

  一般设置为默认Normal,Password为密码框,NoEcho设置在一些数据库输入密码的时候就是类似这种不可见。

    ui->lineEdit_3->setPlaceholderText("密码");
    ui->lineEdit_3->setEchoMode(QLineEdit::Password);               //密码,一般是用小黑点覆盖你所输入的字符
    //ui->lineEdit_3->setEchoMode(QLineEdit::Normal);                 //默认,输入什么即显示什么
    //ui->lineEdit_3->setEchoMode(QLineEdit::NoEcho);                 //任何输入都看不见(只是看不见,不是不能输入)

5. 类型限制

  类型限制,可以限制数字、英文范围,还可以限制输入类型。

     ui->lineEdit_4->setPlaceholderText("DoubleSize");
    // 整形 范围:[1, 99]
    QIntValidator *pIntValidator = new QIntValidator(this);
    pIntValidator->setRange(1, 99);
    // 字符和数字
    QRegExp reg("[a-zA-Z0-9]+$");
    QRegExpValidator *pValidator = new QRegExpValidator(this);
    pValidator->setRegExp(reg);
    // 浮点型 范围:[-360, 360] 精度:小数点后2位
    QDoubleValidator *pDoubleValidator = new QDoubleValidator(this);
    pDoubleValidator->setRange(-360, 360);
    pDoubleValidator->setNotation(QDoubleValidator::StandardNotation);
    pDoubleValidator->setDecimals(2);
    //设置条件
    ui->lineEdit_4->setValidator(pDoubleValidator);

6. 对齐方式

  输入对齐方式。

    ui->lineEdit_5->setPlaceholderText("对齐方式");
    ui->lineEdit_5->setAlignment(Qt::AlignCenter);                  //居中对齐
    //ui->lineEdit_5->setAlignment(Qt::AlignRight);                 //右对齐
    //ui->lineEdit_5->setAlignment(Qt::AlignLeft);                  //左对齐

7. 添加图标

  实际中图标在左边的位置挺多的,但是图标在右边的时候也会有遇到,例如手机号验证右边会放个ico。

 

    // 添加action
    ui->lineEdit_6->setPlaceholderText("添加ico");
    QAction *pLeadingAction = new QAction(this);
    pLeadingAction->setIcon(QIcon("D:/ico.ico"));
    ui->lineEdit_6->addAction(pLeadingAction, QLineEdit::LeadingPosition);//QLineEdit::TrailingPosition

8. 验证器

  验证器可以实现很多功能,我的另一篇博客有专门介绍验证器:https://blog.csdn.net/qq_37529913/article/details/109440819 大家也可以按着示例来研究

    //手机号
    QRegExp rC("^1([358][0-9]|4[579]|66|7[0135678]|9[89])[0-9]{8}$");
    //邮箱
    QRegExp rE("^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(.[a-zA-Z0-9_-]+)+$");
    QRegExp rx( "(-|\\+)?[0-8]\\d:[0-5]\\d:[0-5]\\d" );

    //ui->lineEdit_7->setPlaceholderText("时间格式");
    //ui->lineEdit_7->setInputMask("0000-00-00 00:00");
    ui->lineEdit_7->setValidator(pDoubleValidator );
    ui->lineEdit_7->setValidator( new  QRegExpValidator(rC, ui->lineEdit_7));

    //验证器 IP、MAC地址、日期、License号
    ui->lineEdit_8->setInputMask("000.000.000.000;_");
    //ui->lineEdit_8->setInputMask("HH:HH:HH:HH:HH:HH;_");
    //ui->lineEdit_8->setInputMask("0000-00-00");
    //ui->lineEdit_8->setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#");

    QString str =ui->lineEdit_9->text();
    int i =ui->lineEdit_9->text().toInt();
    double dou =ui->lineEdit_9->text().toDouble();

9. 样式表

参考作者样式文章:QT样式表 https://blog.csdn.net/qq_37529913/article/details/108735409
参考作者样式文章:QSS样式表 https://blog.csdn.net/qq_37529913/article/details/109288422

猜你喜欢

转载自blog.csdn.net/qq_37529913/article/details/115409726