优秀的编程知识分享平台

网站首页 > 技术文章 正文

第22天 | 28天学会PyQt5,单行文本框

nanyue 2024-12-24 14:50:30 技术文章 3 ℃

文本框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##程序员##好平台好讲师##桌面##热搜#

Tags:

最近发表
标签列表