一、QLineEdit单行文本输入框控件
- QLineEdit单行文本输入框控件在登陆注册或者条目选择的时候都会使用到
1.基本内容
- 文件内容获取
- 文本框密码输出
- 文本框初始文字设置
- 文本清空按钮
- 密码与明文的转换
- 文本自动补全(类似搜索提示)
- 文本字符长度限制
2.代码
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
window = QWidget()
window.setWindowTitle('QLineEdit-单行文本编辑器 - PyQt5中文网')
window.resize(600, 450)
window.move(300, 300)
btn = QPushButton(window)
btn.move(50, 50)
btn.setText('按钮')
#文本内容获取
'''
setText() 设置文本内容
insert(mewText) 在光标处插入文本
text() 获取真实的文本内容
displayText() 获取用户能看到的内容
'''
# 1.构造
led = QLineEdit(window)
# ==============文本内容的设置和获取=============== # 代码分割线 - 开始
#led.setText('11111') # 或覆盖构造时默认的文本,这和QPushButton中的setText不一样
#led.insert('22') # 如果文本框是空的,就和setText是一样的功能
btn.pressed.connect(lambda :led.insert('WWW')) #在光标处插入文本
btn.pressed.connect(lambda :print(led.text())) #获取输入的数据
#print(led.displayText()) #这样获取不到数据
btn.pressed.connect(lambda :print(led.displayText())) #获取输入的显示的数据
# ==============QLineEdit文本框输出模式=============== # 代码分割线 - 开始
# setEchoMode() 明文Normal=0、密文Password=2、不输出NoEcho=1、编辑时明文,结束后密文PasswordEchoOnEdit=3
# 以上的枚举值都是类属性,所以样用QLineEdit调用出来
led.setEchoMode(QLineEdit.Normal)
# led.setEchoMode(QLineEdit.Password) #输出就是密码的样式
# led.setEchoMode(QLineEdit.NoEcho)
# led.setEchoMode(QLineEdit.PasswordEchoOnEdit)
# ==============QLineEdit占位提示=============== # 代码分割线 - 开始
# setPlaceholderText()
# placeholderText()
led.setPlaceholderText('请输入密码')
# ==============QLineEdit清空按钮=============== # 代码分割线 - 开始
led.setClearButtonEnabled(True)
# ==============QLineEdit添加明文/密文操作行为=============== # 代码分割线 - 开始
action = QAction(led) # 创建一个QAction对象放在led表单中
action.setIcon(QIcon('aaa.png')) # 给对象设置图标
#如果是密码状态,显示,如果是显示,则变成密码
def change() :
if led.echoMode() == QLineEdit.Normal :
led.setEchoMode(QLineEdit.Password)
action.setIcon(QIcon('n.png'))
else :
led.setEchoMode(QLineEdit.Normal)
action.setIcon(QIcon('y.png'))
action.triggered.connect(change)
led.addAction(action, QLineEdit.TrailingPosition) # 接收对象,指定存放位置
#led.addAction(action, QLineEdit.LeadingPosition) #图片放在前面
# ==============QLineEdit自动补全=============== # 代码分割线 - 开始
qcompleter = QCompleter(['aaa', 'abc', 'AAA', '123', '136'], led)
led.setCompleter(qcompleter) # led改为明文显示
# ==============输入限制=============== # 代码分割线 - 开始
led.setMaxLength(5) # 字符长度限制
led.setReadOnly(False) # 制度设置 #为True就输入不进去了
window.show()
sys.exit(app.exec_())
3.效果
