赞
踩
其是一个单行文本编辑器,允许用户输入和编辑单行纯文本,自带一组编辑功能
#!/usr/bin/env python # -*- coding: UTF-8 -*- # @author: kun from PyQt5.Qt import * import sys app = QApplication(sys.argv) w = QWidget() w.resize(500, 500) tx = QLineEdit("hello", w) # hello 为文本输入框的默认值 setText("hello) tx.setText("你好呀!") # 设置文本内容 tx.insert("liuzhongkun") # 在光标处插入文本内容 print(tx.text()) # 获取真实文本内容 print(tx.displayText()) # 获取展示的文本内容,如密码框获取的是点,而不是具体内容 w.show() sys.exit(app.exec_())
#!/usr/bin/env python # -*- coding: UTF-8 -*- # @author: kun from PyQt5.Qt import * import sys app = QApplication(sys.argv) w = QWidget() w.resize(500, 500) te = QLineEdit(w) te.setEchoMode(QLineEdit.NoEcho) # 不显示输出的内容 print(te.echoMode()) # 获取输出模式 btn = QPushButton("提交", w) btn.move(0, 40) btn.clicked.connect(lambda: te.setEchoMode(QLineEdit.Normal)) w.show() sys.exit(app.exec_())
输出模式:
NoEcho = 1
:不输出Normal = 0
:正常输出Password = 2
:密文模式PasswordEchoOnEdit = 3
:编辑时明文,结束后密文
te.setPlaceholderText("这个提示语句") # 设置提示语句
print(te.placeholderText()) # 获得提示语句
在用户输入文本之前,给用户的提示语句
文本框为空,显示提示文本;反之,隐藏提示文本
setClearButtonEnable(bool) # 设置清空按钮
isClearButtonEnable() # 获取是否有清空按钮
比如,添加密码框的小眼睛
addAction(QAction, QLineEdit.ActionPosition)
# QLineEdit.ActionPosition: QLineEdit.LeadingPosition 按前面 QLineEdit.trailingPosition 按后面
action.triggered.connect(fn)
addAction(QIcon, QLineEdit.ActionPosition) # 返回操作动作
comp = QCompleter(iterator, parent) # 创建完成器
setCompleter(QCompleter) # 设置完成器
completer() # 获得完成器
内容长度限制
setMaxLength(int) # 设置限制输入的长度
maxLength() # 获取输入长度
只读限制
setReadOnly(bool) # 设置只读
isReadOnly() # 获取是否为只读
规则验证
setValidator(QValidator) # 设置验证器
setInputMask(mask_str) # 掩码验证
hasAcceptableInput() # 判定输入文本是否通过验证
含义:
掩码字符
输入字符 | 含义 |
---|---|
A |
ASCII字母字符是必须的,取值空间是A-Z,a-z |
a |
ASCII 字母字符是允许的但不是必须的 |
N |
ASCII字母字符是必须的. A-Z, a-z, 0-9 |
n |
ASCII 字母字符是允许的但不是必须的 |
X |
任何字符都可以,是必须需要的 |
x |
任何字符都允许的,但不是必须需要的 |
9 |
ASCII 数字是必须要的. 0-9 |
0 |
ASCII 数字是允许的,但不是必须要的 |
D |
ASCII 数字是必须要的. 1-9 |
d |
ASCII 数字是允许的,但不是必须要的 (1-9) |
# |
ASCII 数字是或加减符号允许的,但不是必须要的 |
H |
十六进制数据字符是必须要的. A-F, a-f, 0-9 |
h |
十六进制数据字符是允许的,但不是必须要的 |
B |
二进制数据字符是必须要的. 0-1 |
b |
二进制数据字符是允许的,但不是必须要的 |
> |
所有的字符字母都是大写的 |
< |
所有的字符字母都是小写的 |
! |
关闭大小写 |
\ |
使用 \ 去转义上面的字符,如果再需要显示上述字符的时候 |
#!/usr/bin/env python # -*- coding: UTF-8 -*- # @author: kun from PyQt5.Qt import * import sys app = QApplication(sys.argv) w = QWidget() w.resize(500, 500) tx = QLineEdit(w) tx.move(100, 100) tx.setPlaceholderText("请输入ip地址") tx.setInputMask("999:999:999:999;*") # 设置掩码,另分隔符为 : 同时令空白字符为 * w.show() sys.exit(app.exec_())
#!/usr/bin/env python # -*- coding: UTF-8 -*- # @author: kun from PyQt5.Qt import * import hashlib class AccountTool: # 将账号密码发送给服务器,验证账号密码的正确性,等待服务器返回结果 # 状态码 ACCOUNT_ERROR = -1 PWD_ERROR = 1 LOGIN_SUCCESS = 0 @staticmethod def check_login(account, pwd): if account != "kun": return AccountTool.ACCOUNT_ERROR # 账户错误返回 -1 if pwd != '9fb144c4156ca8aa142b18f34e170a55': return AccountTool.PWD_ERROR # 密码错误返回 1 return AccountTool.LOGIN_SUCCESS # 正确返回 0 @staticmethod def encrypt_(pwd_encrypt): # 对密码,使用 md5 加密 lis = ["我是md5加密", "我是md5二次加密"] # 加盐 for i in lis: temp = hashlib.md5(i.encode("utf-8")) temp.update(pwd_encrypt.encode("utf-8")) pwd_encrypt = temp.hexdigest() return pwd_encrypt class Window(QWidget): def __init__(self): super().__init__() self.Account = "kun" self.Pwd = "123456" self.setWindowTitle("登录界面") # 设置标题 self.resize(500, 500) # 设置窗口大小 self.move(100, 100) # 移动窗口 self.setMinimumSize(400, 400) # 限定窗口大小 self.setMaximumSize(1000, 1000) self.setup_ui() # 调用创建控件的方法 def setup_ui(self): # 添加控件的操作 self.btn = QPushButton("登 录", self) # 创建登录按钮 self.btn.setEnabled(False) self.btn.pressed.connect(self.login_) self.acc = QLineEdit(self) # 创建账号输入框 self.acc.setPlaceholderText("请输入您的用户名") self.acc.textChanged.connect(self.btn_) # 当文本框内容改变时,修改按钮状态 self.acc.setClearButtonEnabled(True) self.pwd = QLineEdit(self) # 创建密码输入框 self.pwd.setPlaceholderText("请输入您的密码") self.pwd.setEchoMode(QLineEdit.Password) # 不显示密码 self.pwd.textChanged.connect(self.btn_) self.pwd.setClearButtonEnabled(True) # 创建动作 self.action = QAction(self.pwd) self.action.setIcon(QIcon("./close.jpg")) self.action.triggered.connect(self.change_) self.label_acc = QLabel(self) self.label_acc.setVisible(False) self.label_pwd = QLabel(self) self.label_pwd.setVisible(False) def change_(self): if self.pwd.echoMode() == QLineEdit.Password: self.action.setIcon(QIcon("./open.jpg")) self.pwd.setEchoMode(QLineEdit.Normal) else: self.action.setIcon(QIcon("./close.jpg")) self.pwd.setEchoMode(QLineEdit.Password) def btn_(self): self.btn.setEnabled(len(self.pwd.text
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。