文本框QLineEdit是表单域中最基本的元素,基于文本框的应用有很多,它提供了编辑文本的功能,自带了撤销、重做、剪切、粘贴、拖拽等功能。通过设置,可以置为密码输入框。QLineEdit常用的事件类型如下表所示。

事件类型

描述

selectionChanged

只要选择改变了,就会触发事件

textChanged

修改文本内容时,触发事件

editingFinished

在编辑文本结束时,触发事件

QLineEdit常用的方法如下表所示。

方法

描述

setEchoMode()

设置文本框的显示格式,值为QLineEdit.Normal(默认)时,正常显示所输入的字符,为QLineEdit.Password时,显示与平台相关的密码掩饰字符(如.)

setPlaceholderText()

设置在文本框中显示的提示文字

setText()

设置文本框内容

text()

返回文本框的内容

setMaxLength()

允许输入的最大字符数

setReadOnly()

将文本框置为只读

setFocus()

设置焦点

setValidator()

设置文本框的验证器(验证规则),将限制任意可能输入的文本,可用的校验器为QIntValidator:限制输入整数,QDoubleValidator:限制输入浮点数,QRegexpValidator:检查输入是否符合正则表达式

程序清单:lineedit.py

import sys from PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidget, QLineEdit, QFormLayout, QPushButton, QMessageBox from PyQt5.QtGui import QRegExpValidator from PyQt5.QtCore import QRegExp # 继承QWidget class LineEditWidget(QWidget): account_edit = None password_edit = None text_edit = None def __init__(self): super().__init__() self.init_ui() def init_ui(self): # 表单布局 form = QFormLayout() # 表达式:字母和数字 reg = QRegExp('[a-zA-Z0-9] $') # 自定义验证器 account_validator = QRegExpValidator(self) # 设置表达式 account_validator.setRegExp(reg) # 账号输入框 self.account_edit = QLineEdit() self.account_edit.setFixedSize(180, 20) self.account_edit.setMaxLength(30) # 设置验证器 self.account_edit.setValidator(account_validator) form.addRow("账号:", self.account_edit) # 密码 self.password_edit = QLineEdit() self.password_edit.setFixedSize(180, 20) self.password_edit.setEchoMode(QLineEdit.Password) self.password_edit.setMaxLength(30) form.addRow("密码:", self.password_edit) login_btn = QPushButton("登录") login_btn.clicked.connect(self.login) form.addWidget(login_btn) self.setLayout(form) # 调整窗口大小 self.resize(900, 500) # 窗口居中 self.center() # 窗口标题 self.setWindowTitle("文本输入框的应用") # 显示窗口 self.show() # 登录按钮处理函数 def login(self): account = self.account_edit.text() password = self.password_edit.text() if account.strip() == "": QMessageBox.warning(self, "账号为空", "账号不可为空,请输入", QMessageBox.Ok) self.account_edit.setFocus() elif password.strip() == "": QMessageBox.warning(self, "密码为空", "密码不可为空,请输入", QMessageBox.Ok) self.password_edit.setFocus() else: QMessageBox.information(self, "登录成功", "恭喜你,登录成功了", QMessageBox.Ok) # 实现居中 def center(self): f = self.frameGeometry() c = QDesktopWidget().availableGeometry().center() f.moveCenter(c) self.move(f.topLeft()) if __name__ == "__main__": app = QApplication(sys.argv) w = LineEditWidget() sys.exit(app.exec_())

运行程序之后,弹出的窗口如下:

pyqt5如何设置表格内容自适应(第22天28天学会PyQt5)(1)

好了,单行文本框的内容就说到这了,关注我,下一节更精彩。

码字不易,你的关注和转发是对我最大的鼓励,谢谢!

一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!

#python##程序员##好平台好讲师##桌面##热搜#

,