PyQt5入门之QLineEdit

发布时间 2023-05-17 15:46:13作者: 突破铁皮

QLineEdit:输入单行文本

下面描述了默认的键绑定。行编辑还提供了一个上下文菜单(通常通过单击鼠标右键进行调用),它提供了其中一些编辑选项。

按键 动作
Left Arrow 将光标向左移动一个字符。
Shift+Left Arrow 移动并选择一个文字左边的文字。
Right Arrow 将光标向右移动一个字符。
Shift+Right Arrow 移动并选择文本向右移动一个字符。
Home 将光标移动到该行的开头。
End 将光标移动到该行的最后。
Backspace 删除光标左边的字符。
Ctrl+Backspace 删除光标左侧的单词。
Delete 删除光标右侧的字符。
Ctrl+Delete 删除光标右侧的单词。
Ctrl+A 全选。
Ctrl+C 将选定的文本复制到剪贴板。
Ctrl+Insert 将选定的文本复制到剪贴板。
Ctrl+K 删除到行尾。
Ctrl+V 将剪贴板文本粘贴到行编辑中。
Shift+Insert 将剪贴板文本粘贴到行编辑中。
Ctrl+X 删除选定的文本并将其复制到剪贴板。
Shift+Delete 删除选定的文本并将其复制到剪贴板。
Ctrl+Z 取消最后的操作。
Ctrl+Y 重做最后的撤消操作。

 

任何其他表示有效字符的键序列都会导致字符被插入到行编辑中。

EchoMode(回显模式)

1.Normal:输入什么显示什么

2:NoEcho:输入什么不显示,但是已经提交了

3.Password:输入什么最后在界面显示为****

4.PasswordEchoOnEdit :编辑时显示为正常,失去焦点后转换为***

校验器

QIntValidator: 整形校验器只能输入整形数字

方法:setRange(最小值,最大值)

pyqt5该方法有bug,并不能限制输入输出的最小最大值只会限制为输入的位数不超过最大值不小于最小值

QDoubleValidator:浮点型校验器

方法::setRange(最小值,最大值,精度)

QRegExpValidator:正则表达式校验器

方法:

reg=QRegExp('正则表达式')

qreg=QRegExpValidator()

qreg.setRegExp(reg)

掩码

用掩码来限制输入

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
import  sys
class MyWindow(QWidget):
    def __init__(self):
        super(MyWindow,self).__init__()
        self.name=None
        self.password1=None
        self.password2 = None
        self.password3 = None
        self.button=None
        self.res=None
        self.mask=None
        self.setupUi()
    def setupUi(self):
        self.setWindowTitle("文本输入框")
        self.resize(400,200)
        form=QFormLayout(self)#创建一个表单布局
        form.setSpacing(30)#设置该布局上控件之间的间隔
        name=QLineEdit(self)
        password1=QLineEdit(self)
        password2 = QLineEdit(self)
        password3 = QLineEdit(self)
        mask=QLineEdit(self)
        button=QPushButton(self)
        res=QLabel(self)
        form.addRow("姓名",name)
        form.addRow("密码1",password1)
        form.addRow("密码2", password2)
        form.addRow("密码3", password3)
        form.addRow("掩码",mask)
        form.addRow("提交",button)
        form.addRow("结果",res)
        # 设置提示
        name.setPlaceholderText("请输入姓名")
        password1.setPlaceholderText("请输入整型数字密码")
        password2.setPlaceholderText("请输入浮点型数字密码")
        password3.setPlaceholderText("请输入数字和字符的混合密码")
        mask.setPlaceholderText("请输入掩码")
        # 设置三种回显模式
        password1.setEchoMode(QLineEdit.NoEcho)
        password2.setEchoMode(QLineEdit.Password)
        password3.setEchoMode(QLineEdit.PasswordEchoOnEdit)
        #设置校验器
        password1val=QIntValidator(self)#整形校验器
        password1val.setRange(1,88)
        #(1,88) 输入范围为0到99
        #(-1,88)输入范围为-9到99
        #该限制为不超过最大值的位数和不小于最小值的位数
        password2val = QDoubleValidator(self)#浮点型校验器
        password2val.setRange(-1,50,2)#设置为-9到99精度为2
        password2val.setNotation(QDoubleValidator.StandardNotation)#设置浮点数为标准表示法
        reg=QRegExp('[a-zA-Z0-9]+')#正则表达式
        password3val = QRegExpValidator(self)
        password3val.setRegExp(reg)

        password1.setValidator(password1val)
        password2.setValidator(password2val)
        password3.setValidator(password3val)

        mask.setInputMask(">N:N:N")

        button.setText("确定")
        button.clicked.connect(self.setRes)
        self.name=name
        self.password1=password1
        self.password2 = password2
        self.password3 = password3
        self.mask=mask
        self.button=button
        self.res=res



    def setRes(self):
        self.res.setText("您的姓名为:\n"+self.name.text()+"\n您的密码为:\n1: %s \n2: %s \n3: %s"%(self.password1.text(),self.password2.text(),self.password3.text())+"\n您的掩码为:\n"+self.mask.text())


if __name__ == '__main__':
    app=QApplication(sys.argv)
    window=MyWindow()
    window.show()
    sys.exit(app.exec_())