【Qt】输入类控件QLineEdit

目录

 输入类控件QLineEdit

例子:录入个人信息

例子:使用正则表达式验证输入框的数据

例子:验证俩次输入密码一致

例子:切换显示代码


 输入类控件QLineEdit

  • QLineEdit 用来表示单行输入框,可以输入一段文本,但是不能换行

核心属性

属性 说明

text

输⼊框中的⽂本

inputMask

输⼊内容格式约束

maxLength

最⼤⻓度

frame

是否添加边框

echoMode

显⽰⽅式.

  • QLineEdit::Normal :这是默认值,⽂本框会显⽰输⼊的⽂本。
  • QLineEdit::Password :在这种模式下,输⼊的字符会被隐藏,通常⽤星号(*)或等号(=)代替。
  • QLineEdit::NoEcho :在这种模式下,⽂本框不会显⽰任何输⼊的字符。

cursorPosition

光标所在位置

alignment

⽂字对⻬⽅式, 设置⽔平和垂直⽅向的对⻬.

dragEnabled

是否允许拖拽

readOnly

是否是只读的(不允许修改)

placeHolderText

当输⼊框内容为空的时候, 显⽰什么样的提⽰信息

clearButtonEnabled

是否会⾃动显⽰出 "清除按钮".

text属性,不仅仅可以通过代码来设置,用户在输入框中进行编辑,也会影响到text值的变化

(1)通过代码中设置text,界面上的文本会发生变化

(2) 直接操作修改界面上的文本(输入框、可以编辑的),text属性的值也会发生改变。

placeHolderText可以起到“提示作用”

当输入框为空的时候,没有任何内容的时候,提示信息才会存在。

一旦用户在这里进行任何动作输入,这个提示信息就会消失。  

clearButtonEnabled可以显示清空按钮!

如果输入框为空,此时没有任何显示。

当输入框有内容的时候,右侧就会出现一个类似于删除的按钮,点击按钮就会立即将输入框里面的内容清空。 

核心信号

属性 说明

void cursorPositionChanged(int old, int new)

当⿏标移动时发出此信号,old为先前的位置,new为新位置。

void editingFinished()

当按返回或者回⻋键时,或者⾏编辑失去焦点时,发出此信号

void returnPressed()

当返回或回⻋键按下时发出此信号.

如果设置了验证器, 必须要验证通过, 才能触发.

void selectionChanged()

当选中的⽂本改变时,发出此信号。

void textChanged(const QString &text)

当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。

代码对⽂本的修改能够触发这个信号.

void textEdited(const QString &text))

当QLineEdit中的⽂本改变时,发出此信号,text是新的⽂本。

代码对⽂本的修改不能触发这个信号.

例子:录入个人信息

让用户输入信息:

(1)姓名

(2&#x

### QLineEdit 控件概述 `QLineEdit` 是 Qt 中用于单行文本输入的基础控件。该控件允许用户输入和编辑文本,并提供了多种方式来控制和验证用户的输入。 #### 创建 `QLineEdit` 创建一个简单的 `QLineEdit` 实例非常直观: ```cpp QLineEdit *lineEdit = new QLineEdit(parent); ``` 其中,`parent` 参数指定了父窗口部件。 #### 设置占位符文本 可以设置提示文字,在没有输入时显示给用户作为指导: ```cpp lineEdit->setPlaceholderText("请输入内容"); ``` #### 输入掩码 为了简化某些特定格式的数据输入(如电话号码、IP 地址),可以通过设定输入掩码实现自动填充部分字符并限定输入范围。对于 IP 地址的输入限制为例[^2]: ```cpp QString ipMask = "000.000.000.000"; this->line_ip->setInputMask(ipMask); ``` 此操作会使得每次输入都遵循指定模式,超出规定长度的部分无法录入。 #### 数据验证 ##### 正则表达式验证 针对更复杂的输入规则,则需借助于正则表达式的强大功能来进行精确匹配。例如,当需要确保用户输入的是有效的电子邮件地址时,可采用如下方法构建验证逻辑[^1]: ```cpp // 定义邮件格式的正则表达式 QRegularExpression emailPattern("[a-zA-Z0-9-]+@[a-zA-Z0-9-_]+\\.[a-zA-Z]+"); // 构建验证器对象并与目标控件关联 auto validator = new QRegularExpressionValidator(emailPattern, lineEdit_Email); lineEdit_Email->setValidator(validator); ``` 需要注意的是,在不同版本之间存在差异——Qt 6.0 及以上推荐使用 `QRegularExpressionValidator` 替代旧版中的 `QRegExpValidator` 来完成这项工作。 #### 响应事件 通过信号槽机制监听文本变化或其他交互动作的发生。比如每当文本发生改变时触发某个处理函数: ```cpp connect(lineEdit_SignalSlotExample, &QLineEdit::textChanged, [=](const QString& text){ qDebug() << "当前文本:" << text; }); ``` 上述代码片段展示了如何连接到 `textChanged()` 信号以便实时获取最新状态更新的信息流。 ---
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值