6.1 QLineEdit单行文本输入框控件

一、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.效果

posted @   Trouvaille_fighting  阅读(297)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示

目录导航