代码编织梦想

前 言

QLineEdit是一个单行文本编辑控件。
使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。
通过改变 QLineEdit 的 echoMode() ,可以设置其属性,比如以密码的形式输入。
文本的长度可以由 maxLength() 限制,可以通过使用 validator() 或者 inputMask() 可以限制它只能输入数字。
我们可以使用 setText() 或者 insert() 改变其中的文本,通过 text() 获得文本,通过 displayText() 获得显示的文本,使用 setSelection() 或者 selectAll() 选中文本,选中的文本可以通过cut()、copy()、paste()进行剪切、复制和粘贴,使用 setAlignment() 设置文本的位置。
文本改变时会发出 textChanged() 信号;如果不是由 setText() 造成文本的改变,那么会发出 textEdit() 信号;鼠标光标改变时会发出 cursorPostionChanged() 信号;当返回键或者回车键按下时,会发出 returnPressed() 信号。
当编辑结束,或者 LineEdit 失去了焦点,或者当返回/回车键按下时,editFinished() 信号将会发出。
与 QLineEdit 相关的一个类是 QTextEdit,它允许多行文字以及富文本编辑。

相关函数介绍

setPlaceholderText()设置提示文字
搜索输入框,没有输入任何字符时,显示“电影、影人、影院、电视剧”这些占位文字,对用户输入作相关提示。

echoLineEdit->setPlaceholderText("电影、影人、影院、电视剧");

setEchoMode()设置模式
淘宝登录界面的一部分,用户名可以直接看到,密码一般都用小黑点掩盖。

switch (index) {
    case 0:
        // 默认,输入什么即显示什么
        echoLineEdit->setEchoMode(QLineEdit::Normal);
        break;
    case 1:
        // 密码,一般是用小黑点覆盖你所输入的字符
        echoLineEdit->setEchoMode(QLineEdit::Password);
        break;
    case 2:
        // 编辑时输入字符显示输入内容,否则用小黑点代替
        echoLineEdit->setEchoMode(QLineEdit::PasswordEchoOnEdit);
        break;
    case 3:
        // 任何输入都看不见(只是看不见,不是不能输入)
        echoLineEdit->setEchoMode(QLineEdit::NoEcho);
}

setAlignment()设置文本位置

switch (index) {
    case 0:
        alignmentLineEdit->setAlignment(Qt::AlignLeft);
        break;
    case 1:
        alignmentLineEdit->setAlignment(Qt::AlignCenter);
        break;
    case 2:
        alignmentLineEdit->setAlignment(Qt::AlignRight);
}

setReadOnly()设置能否编辑

switch (index) {
    case 0:
        accessLineEdit->setReadOnly(false);
        break;
    case 1:
        accessLineEdit->setReadOnly(true);
}

setValidator()对输入进行限制
这种方式的实质是通过正则表达式限制输入的内容

switch (index) {
    case 0:
        // 无限制
        validatorLineEdit->setValidator(0);
        break;
    case 1:
        // 只能输入整数
        validatorLineEdit->setValidator(new QIntValidator(
            validatorLineEdit));
        break;
    case 2:
        // 实例,只能输入-180到180之间的小数,小数点后最多两位(可用于限制经纬度等)
        QDoubleValidator *pDfValidator = new QDoubleValidator(-180.0, 180.0 , 2, validatorLineEdit);
        pDfValidator->setNotation(QDoubleValidator::StandardNotation);
        validatorLineEdit->setValidator(pDfValidator);
}

setInputMask()对输入进行限制
通过限制格式限制输入,具体怎么格式化可以参考Qt助手。

switch (index) {
    case 0:
        inputMaskLineEdit->setInputMask("");
        break;
    case 1:
        inputMaskLineEdit->setInputMask("+99 99 99 99 99;_");
        break;
    case 2:
        inputMaskLineEdit->setInputMask("0000-00-00");
        inputMaskLineEdit->setText("00000000");
        inputMaskLineEdit->setCursorPosition(0);
        break;
    case 3:
        inputMaskLineEdit->setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#");
}

setMaxLength()设置可以输入的最多字符数

// 最多只能输入9个字符
echoLineEdit->setMaxLength(9);

validator和inputmask的结合
比如纬度用 “度:分:秒” 的格式表示,分和秒的范围都是 00-59,度的范围是 -89 到 89。

QRegExp rx("(-|\\+)?[0-8]\\d:[0-5]\\d:[0-5]\\d");
echoLineEdit->setValidator(new QRegExpValidator(rx, echoLineEdit));
echoLineEdit->setInputMask("#00:00:00;0");
echoLineEdit->setText("+00:00:00");

如果不控制输入,那么必须在输入后检查输入是否合法,但控制输入后的输入肯定是合法的,可以省去检查合法的繁琐步骤。只需使用正则表达式控制输入的度分秒范围,然后控制输入的格式。

QLineEdit *pIPLineEdit = new QLineEdit(this);
QLineEdit *pMACLineEdit = new QLineEdit(this);
QLineEdit *pDateLineEdit = new QLineEdit(this);
QLineEdit *pLicenseLineEdit = new QLineEdit(this);

pIPLineEdit->setInputMask("000.000.000.000;_");
pMACLineEdit->setInputMask("HH:HH:HH:HH:HH:HH;_");
pDateLineEdit->setInputMask("0000-00-00");
pLicenseLineEdit->setInputMask(">AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;#");

LineEdit 的Qss

QLineEdit{
 border: 1px solid #ABCDA0;      /* 边框宽度为1px,颜色为#A0A0A0 */
 border-radius: 3px;         /* 边框圆角 */
 padding-left: 5px;           /* 文本距离左边界有5px */
 background-color: #F2F2F2;     /* 背景颜色 */
 color: black;     /* 文本颜色 */
 selection-background-color: #A0A0A0;     /* 选中文本的背景颜色 */
 selection-color: #F2F2F2;    /* 选中文本的颜色 */
 font-family: "Microsoft YaHei";    /* 文本字体族 */
 font-size: 10pt;    /* 文本字体大小 */
}

QLineEdit:hover { /* 鼠标悬浮在QLineEdit时的状态 */
 border: 1px solid #298DFF;
 border-radius: 3px;
 background-color: #F2F2F2;
 color: #298DFF;
 selection-background-color: #298DFF;
 selection-color: #F2F2F2;
}

QLineEdit[echoMode="2"] { /* QLineEdit有输入掩码时的状态 */
 lineedit-password-character: 9679;
 lineedit-password-mask-delay: 2000;
}

QLineEdit:disabled { /* QLineEdit在禁用时的状态 */
 border: 1px solid #CDCDCD;
 background-color: #CDCDCD;
 color: #B4B4B4;
}

QLineEdit:read-only { /* QLineEdit在只读时的状态 */
 background-color: #CDCDCD;
 color: #F2F2F2;
}
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/houxian1103/article/details/129630772

qlineedit使用总结-爱代码爱编程

1.QLineEdit显示旧文本,获取点击焦点后旧文本消失  #include <QTextCodec> //设置编码 QTextCodec *codec = QTextCodec::codecForName("UTF-8"); QTextCodec::setCodecForCStrings(codec);

qlineedit 设置界面不能输入_Qt学习:QLineEdit的用法总结-爱代码爱编程

在使用Qt编写软件时,QLineEdit这个部件经常会被用到,大部分用在登录界面的输入框,所以这个部件非常的重要. 常用成员函数: 1.void setClearButtonEnabled(bool); //是否设置一个清空按钮. 点击这个清空按钮后,就会自动删除行编辑框内的所有内容,类似于clear(). 示例如图: 2.void se

QLineEdit使用方法总结-爱代码爱编程

本章收录QLineEdit常用的方法。 目录 常用设置重写QLineEdit,实现点击变色效果图 常用设置 MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(thi

qlineedit的 常用方法的示例_hitzsf的博客-爱代码爱编程

文章目录 一、PlaceholderText二、clearButton三、QAction1. 使用默认的方式显示action的菜单2. QToolButton作为QAction使用2.1 去掉 ToolButton

qt qlineedit 信号函数总结_十年编程老舅的博客-爱代码爱编程

Qt QLineEdit 信号函数总结 QLineEdit一共有6个信号函数,并不多,很好理解。 void cursorPositionChanged( intold, intnew ) 当鼠标移动时发出此信号,old为先前的位置,new为新位置。 void editingFinished() 当 按返回或者回车键时,或者行编辑失去焦点时,发出此

qt扫盲-qlineedit理论总结-爱代码爱编程

QLineEdit理论总结 1. 简述2. 输入模式3. 输入限制4. 文本操作槽函数3. 信号4. 快捷键5. 外观 1. 简述 QLineEdit 是一个有用的编辑功能类,主要是处理输入和编辑单行纯文

qt开发-qlineedit使用总结-爱代码爱编程

QLineEdit是一个单行文本编辑控件。 使用者可以通过很多函数,输入和编辑单行文本,比如撤销、恢复、剪切、粘贴以及拖放等。 通过改变QLineEdit的 echoMode() ,可以设置其属性,比如以密码的形式输入。 文本的长度可以由 maxLength() 限制,可以通过使用 validator() 或者 inputMask()

qt show(), shownormal(), showminimized(),showmaximized()之间的差别和用法,show()函数的核心流程-爱代码爱编程

函数功能: show():显示继承自QWidget的窗口;showNormal():回归正常状态,一般是指最大化、最小化的恢复;showMinimized():最小化窗口显示,isVisible()为true,isMini

第一个 qt 程序-爱代码爱编程

第一个 Qt 程序 “hello world ”的起源要追溯到 1972 年,贝尔实验室著名研究员 Brian Kernighan 在撰写 “B 语言教程与指导(Tutorial Introduction to the L

用qt画一个全方位雷达扫描-爱代码爱编程

示例1 Qt画一个全方位雷达扫描 #include <QPainter> #include <QWidget> #include <QTimer> #include <qmath

qt学习总结之qlineedit-爱代码爱编程

一、描述 QLineEdit是一个单行文本编辑器,允许用户输入和编辑单行纯文本。自带一些编辑例如撤销、重做、剪切、粘贴等功能。 QLineEdit继承自QWidget类,具备父类各种API。 下表列出了 QLineEd