6.QLineEdit 控件与回显模式EchoMode

本文详细介绍了PyQT5的QLineEdit控件在不同回显模式下的应用,包括Normal、NoEcho(适用于输入密码)、Password模式以及PasswordEchoOnEdit模式,后者在编辑时会经历从字符到星号的转变。同时提到了#placeholdertext属性,用于设置文本编辑框的占位符文本。
  1. Normal
  2. NoEcho  不回显, linux中输入密码,不显示
  3. Password 模式  sha  md5
  4. PasswordEchoOnEdit   先显示A,过1s就显示※

#placeholdertext  文本编辑框显示灰色的内容,默认是灰色的

 

 def initUI(self):
        print('initUI ...')
        # self.setGeometry(300,300, 500,500)
        self.move(500,500)
        self.setWindowTitle('QLabelBuddy')

        formLayout = QFormLayout()
        # placeholdertext  文本编辑框显示灰色的内容,默认是灰色的
        normalLineEdit  = QLineEdit()
        normalLineEdit.setPlaceholderText("Normal")
        normalLineEdit.setEchoMode(QLineEdit.Normal) #设置成什么模式,里面是常量,开头都是大写
        noEchoLineEdit  = QLineEdit()
        noEchoLineEdit.setPlaceholderText("NoEcho")
        noEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
        pwdLineEdit     = QLineEdit()
        pwdLineEdit.setPlaceholderText("Password")
        pwdLineEdit.setEchoMode(QLineEdit.Password)
        pwdEchoOn       = QLineEdit()
        pwdEchoOn.setPlaceholderText("PasswordEchoOnEdit")
        pwdEchoOn.setEchoMode(QLineEdit.PasswordEchoOnEdit)

        formLayout.addRow("Normal", normalLineEdit)
        formLayout.addRow("NoEcho", noEchoLineEdit)
        formLayout.addRow("Password", pwdLineEdit)
        formLayout.addRow("PasswordEchoOnEdit",pwdEchoOn)

        self.setLayout(formLayout)

 

### QLineEdit EchoMode 属性详解 QLineEdit 的 `EchoMode` 是一个重要的属性,用于控制输入字符的示方式。此特性对于处理密码或其他敏感信息非常有用。 #### 设置回显模式 通过设置不同的枚举值来改变 `EchoMode` 行为: - **Normal**: 输入的内容会正常示。 - **NoEcho**: 不示任何已输入的文字。 - **Password**: 使用默认的掩码字符替换实际输入内容,默认情况下该字符是一个实心圆点。 - **PasswordEchoOnEdit**: 当编辑时示真实字符,在失去焦点后切换成 Password 模式[^2]。 为了实现这些效果,可以利用样式表进一步自定义外观,比如指定特定的密码字符: ```css QLineEdit[echoMode="2"] { lineedit-password-character: 9679; } ``` 上述 CSS 片段表明当 `echoMode` 被设为 "2"(即 Password),则使用 Unicode 字符 U+25CF (●) 来表示隐藏后的文本。 下面是一段 Python 代码示例展示了如何创建具有不同 echo modes 的 QLineEdit 控件实例: ```python import sys from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QLabel, QLineEdit class Demo(QWidget): def __init__(self): super().__init__() layout = QVBoxLayout() label_normal = QLabel("Normal:") edit_normal = QLineEdit() edit_normal.setPlaceholderText("Enter text here...") label_password = QLabel("Password Mode:") edit_password = QLineEdit() edit_password.setEchoMode(QLineEdit.Password) self.setLayout(layout) layout.addWidget(label_normal) layout.addWidget(edit_normal) layout.addWidget(label_password) layout.addWidget(edit_password) if __name__ == '__main__': application = QApplication(sys.argv) window = Demo() window.setWindowTitle('QLineEdit Echo Modes') window.setGeometry(100, 100, 300, 150) window.show() sys.exit(application.exec_()) ``` 这段程序构建了一个简单的界面,其中包含了两个 QLineEdit 实例分别设置了 Normal 和 Password 回显模式[^3]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值