网站首页 > 教程文章 正文
文本框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]+#39;)
# 自定义验证器
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_())
运行程序之后,弹出的窗口如下:
好了,单行文本框的内容就说到这了,关注我,下一节更精彩。
码字不易,你的关注和转发是对我最大的鼓励,谢谢!
一个当了10年技术总监的老家伙,分享多年的编程经验。想学编程的朋友,关注我,你就赚到了。我正在分享Python、前端、Java和App方面的干货了。赶紧来围观啊!!!
- 上一篇: 牛批!用Python远程控制交通信号灯
- 下一篇: pyqt6开发的第一个程序 pyqt5开源项目
猜你喜欢
- 2024-12-17 Qt使用教程:创建Qt Quick UI表单(三)
- 2024-12-17 一小例子,了解 TCP 通讯流程 | Qt 示例
- 2024-12-17 如何使用QT编写自己的串口调试助手软件
- 2024-12-17 Qt pro文件中的常用宏说明 qt pro宏定义
- 2024-12-17 Qt Creator 源码学习笔记01,初识QTC
- 2024-12-17 QT学习:statusBar的使用,创建控件添加到statusBar上面
- 2024-12-17 一口气,了解 Qt 的所有 IPC 方式 | Qt 速学
- 2024-12-17 Qt线程QThread开启和安全退出 qt线程怎么安全关闭
- 2024-12-17 Qt之使用socket实现远程控制 qt使用mqtt
- 2024-12-17 C/C++编程笔记:编写完成了一个C/C++程序,如何做一个界面出来?
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- md5 sha1 (32)
- mybatis plus page (35)
- semaphore 使用详解 (32)
- update from 语句 (32)
- vue @scroll (38)
- 堆栈区别 (33)
- 在线子域名爆破 (32)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)