网站首页 > 技术文章 正文
文本框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方面的干货了。赶紧来围观啊!!!
猜你喜欢
- 2024-12-24 Excel VBA 用户窗体设置/一步一步代你设计EXCEL用户+密码登录界面
- 2024-12-24 家庭收支理财管理系统 Access数据库系统课程设计制作实例
- 2024-12-24 Qt 2D绘图:图形视图框架的事件处理与传播
- 2024-12-24 MFC界面库BCGControlBar v32.1 - 可视化管理器和主题升级
- 2024-12-24 DJYGUI系列文章九:GDD消息系统 gd信息
- 2024-12-24 Qt设备识别(简单的密钥生成器) qt设备管理系统
- 2024-12-24 Access开发的《财务经济管理系统》
- 2024-12-24 初级开发人员告诉我:OO 设计模式太复杂而且没用
- 2024-12-24 从零开始学Qt(89):UDP单播和广播
- 2024-12-24 Qt入门阶段之事件 qtc间期延长的临床意义
- 02-21走进git时代, 你该怎么玩?_gits
- 02-21GitHub是什么?它可不仅仅是云中的Git版本控制器
- 02-21Git常用操作总结_git基本用法
- 02-21为什么互联网巨头使用Git而放弃SVN?(含核心命令与原理)
- 02-21Git 高级用法,喜欢就拿去用_git基本用法
- 02-21Git常用命令和Git团队使用规范指南
- 02-21总结几个常用的Git命令的使用方法
- 02-21Git工作原理和常用指令_git原理详解
- 最近发表
- 标签列表
-
- cmd/c (57)
- c++中::是什么意思 (57)
- sqlset (59)
- ps可以打开pdf格式吗 (58)
- phprequire_once (61)
- localstorage.removeitem (74)
- routermode (59)
- vector线程安全吗 (70)
- & (66)
- java (73)
- org.redisson (64)
- log.warn (60)
- cannotinstantiatethetype (62)
- js数组插入 (83)
- resttemplateokhttp (59)
- gormwherein (64)
- linux删除一个文件夹 (65)
- mac安装java (72)
- reader.onload (61)
- outofmemoryerror是什么意思 (64)
- flask文件上传 (63)
- eacces (67)
- 查看mysql是否启动 (70)
- java是值传递还是引用传递 (58)
- 无效的列索引 (74)