【PyQt】10 QLineEdit


前言

1、QLineEdit 可以输入单行文字
2、回显模式
3、校验器
4、掩码输入


一、回显模式(EchoMode)

1.1 四种回显模式

1、Normal
输入什么,显示什么
2、NoEcho
输入信息,可以传达给计算机,但是不显示。
3、password
输入信息,可以传达给计算机,但是直接显示圆圈。
4、passwordEchoOnEdit
输入信息,先显示一段时间,然后变成掩码。

1.2 代码展示

'''
#Author :susocool
#Creattime:2024/2/9
#FileName:019 - QLineEdit
#Description:四种回显模式
'''
from PyQt5.QtWidgets import *
import sys

class QLineEditEchoMode(QWidget):
    def __init__(self):
        super(QLineEditEchoMode, self).__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('文本框的回显模式')

        formLayout = QFormLayout()

        normalLineEdit = QLineEdit()
        noEchoLineEdit = QLineEdit()
        passwordLineEdit = QLineEdit()
        passwordEchoOnEditLineEdit = QLineEdit()

        formLayout.addRow("Normal",normalLineEdit)
        formLayout.addRow("noEcho", noEchoLineEdit)
        formLayout.addRow("password", passwordLineEdit)
        formLayout.addRow("passwordEchoOnEdit", passwordEchoOnEditLineEdit )

        # setPlaceholderText() : 输入框(input)或文本区域(textarea)中的占位文本。
        normalLineEdit.setPlaceholderText('Normal')
        noEchoLineEdit.setPlaceholderText('NoEcho')
        passwordLineEdit.setPlaceholderText('password')
        passwordEchoOnEditLineEdit.setPlaceholderText('passwordEchoOnEdit')

        normalLineEdit.setEchoMode(QLineEdit.Normal)
        noEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
        passwordLineEdit.setEchoMode(QLineEdit.Password)
        passwordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)

        self.setLayout(formLayout)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QLineEditEchoMode()
    main.show()

    sys.exit(app.exec_())

运行结果

无输入
在这里插入图片描述
正常情况
在这里插入图片描述
已有输入,但是不显示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、校验器

限制输入是整数、浮点数或者满足一定条件的字符串。

2.1 代码

'''
#Author :susocool
#Creattime:2024/2/9
#FileName:020-QlineEdit校验器
#Description: 校验器
'''
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegularExpressionValidator
from PyQt5.QtCore import QRegularExpression     # 正则表达式
import sys


class QLineEditValidator(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle('校验器')

        # 创建表单布局
        formLayout = QFormLayout()

        intLineEdit = QLineEdit()
        doubleEdit = QLineEdit()
        validatoredit = QLineEdit()

        formLayout.addRow('整数布局',intLineEdit)
        formLayout.addRow('浮点类型',doubleEdit)
        formLayout.addRow('数字和字母',validatoredit)

        intLineEdit.setPlaceholderText('整数(1~99)')
        doubleEdit.setPlaceholderText('浮点型(-360~360)')
        validatoredit.setPlaceholderText('字母和数字')

        # 整数校验器
        intValitor = QIntValidator(self)
        intValitor.setRange(1,99)

        # 浮点数校验器
        doubleValidator = QDoubleValidator(self)
        doubleValidator.setRange(-360,360)
        doubleValidator.setNotation(QDoubleValidator.StandardNotation)           # 正常显示浮点数
        doubleValidator.setDecimals(2)      # 设置精度,小数点后两位

        # 字符和数字
        # 表示匹配任意一个字母(大小写不敏感)或数字字符。+表示匹配前面的模式一次或多次。$表示匹配输入的结尾位置。
        reg = QRegularExpression('[a-zA-z0-9]+$')
        validator = QRegularExpressionValidator(reg,self)
        validatoredit.setValidator(validator)

        # 设置校验器
        intLineEdit.setValidator(intValitor)
        doubleEdit.setValidator(doubleValidator)
        validatoredit.setValidator(validator)

        # 设置布局 !!!
        self.setLayout(formLayout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QLineEditValidator()
    main.show()

    sys.exit(app.exec_())

2.2 运行结果

在这里插入图片描述

三、通过掩码限制输入

PyQt5系列教程(28): QLineEdit 2
在这里插入图片描述

3.1 代码

'''
#Author :susocool
#Creattime:2024/2/10
#FileName:021-QLineEdit掩码
#Description: 

'''
from PyQt5.QtWidgets import *
import sys

class QLineEditMask(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.setWindowTitle("用掩码限制QLineEdit控件输入")
        formLayout = QFormLayout()

        ipLineEdit = QLineEdit()
        macLineEdit = QLineEdit()
        dateLineEdit = QLineEdit()
        licenseLineEdit = QLineEdit()

        # 设置掩码
        # 一般ip是192.168.21.21 一般是三位数
        ipLineEdit.setInputMask('000.000.000.000;_')    # 没有输入的时候显示是下划线的形式
        macLineEdit.setInputMask('HH:HH:HH:HH:HH:HH;_')
        dateLineEdit.setInputMask('0000-00-00')
        licenseLineEdit.setInputMask('>AAAAA-AAAAA-AAAA-AAAAA-AAAAA;#')

        formLayout.addRow('数字掩码',ipLineEdit)
        formLayout.addRow('Mac掩码',macLineEdit)
        formLayout.addRow('日期掩码',dateLineEdit)
        formLayout.addRow('许可证掩码',licenseLineEdit)

        self.setLayout(formLayout)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    main = QLineEditMask()
    main.show()

    sys.exit(app.exec_())

3.2 运行结果

在这里插入图片描述


总结

这篇文章依旧没有总结

  • 14
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PyQt6中,可以使用QLineEdit控件来进行文字的显示和输入。下面是关于QLineEdit的一些常用方法: 1. 设置回显模式(Echo Mode):可以通过setEchoMode方法来设置QLineEdit的回显模式,回显模式决定了用户输入的内容在界面上的显示方式。常见的回显模式有Normal、NoEcho、Password等。例如: ```python lineEdit = QLineEdit() lineEdit.setEchoMode(QLineEdit.Password) # 设置回显模式为密码模式 ``` 2. 获取和设置文本内容:可以使用text方法来获取QLineEdit中的文本内容,使用setText方法来设置文本内容。例如: ```python lineEdit = QLineEdit() text = lineEdit.text() # 获取文本内容 lineEdit.setText("Hello PyQt6") # 设置文本内容为"Hello PyQt6" ``` 3. 监听回车键事件:可以使用returnPressed信号来监听用户在QLineEdit中按下回车键的事件。例如: ```python lineEdit = QLineEdit() lineEdit.returnPressed.connect(self.onReturnPressed) # 绑定回车键事件的处理函数 def onReturnPressed(self): text = lineEdit.text() # 处理用户按下回车键的逻辑 ``` 4. 设置输入限制:可以使用setValidator方法来设置QLineEdit的输入限制,例如只允许输入数字、只允许输入特定的字符等。例如: ```python lineEdit = QLineEdit() validator = QIntValidator() # 只允许输入整数 lineEdit.setValidator(validator) ``` 5. 清空文本内容:可以使用clear方法来清空QLineEdit中的文本内容。例如: ```python lineEdit = QLineEdit() lineEdit.clear() # 清空文本内容 ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值