.net上边一个大图片下边文字可选中的控件_PyQt5控件:单行文本输入框(QLineEdit)

1c157c3dfc658b61ce7f0a682a6ec8d0.png

利用QT设计师学习PyQt5控件

在Qt中,QLineEdit是文本编辑框控件,是比较基础且常用的控件的之一

3f8c6f23b1a6adf9061d1aa929afb733.png

QLineEdit类属性

  • inputMask设置掩码
  • text 设置文本
  • maxLength文本框输入的最大字符数
  • frame 设置边框
  • echoMode 设置文本框显示格式
Normal正常显示所输入的字符,此为默认选项 NoEcho不显示任何输入的字符,常用于密码类型的输入,且长度保密 Password显示与平台相关的密码掩饰字符,而不是实际输入的字符 PasswordEchoOnEdit在编辑时显示字符,负责显示密码类型的输入
  • cursorPosition光标位置
  • alignment文本对齐方式
AlignLeft左对齐 AlignRight右对齐 AlignCenter水平居中对齐 AlignJustify水平方向调整间距两端对齐 AlignTop垂直上对齐 AlignBottom垂直方下对齐 AlignVCenter垂直方向居中对齐
  • dragEnabled设置文本框是否接受拖动
  • readOnly设置文本为只读
  • placeholderText设置文本框提示文字
  • cursorMoveStyle光标移动风格
LogicalMoveStyle逻辑风格 VisualMoveStyle视觉风格
  • clearButtonEnabled快速删除按钮

重点介绍下inputMask设置掩码:

下表列出了输入掩码的占位符和字面字符,并说明其如何控制数据输入

  • A:ASCII字母字符是必须输入的(A-Z,a-z)
  • a:ASCII字母字符是允许输入的,但不是必须输入的
  • N:ASCII字母字符是必须输入的(A-Z,a-z,0-9
  • n:ASCII字母字符是允许输入的,但不是必须输入的
  • X:任何字符都是必须输入
  • x:任何字符都是允许输入的,但不是必须输入的
  • 9:ASCII数字字符是必须输入的(0-9)
  • 0:ASCII数字字符是允许输入的,但不是必须输入的
  • D:ASCII数字字符是必须输入的(1-9)
  • d:ASCII数字字符是允许输入的,但不是必须的(1-9)
  • #:ASCII数字字符与加减字符是允许输入的,但不是必须的
  • H:十六进制格式字符是必须输入的(A-F,a-f,0-9)
  • h:十六进制格式字符允许输入,但不是必须的
  • B:二进制格式字符是必须输入的(0,1)
  • b:二进制格式字符是允许输入的,但不是必须的
  • >:所有字母字符都大写
  • <:所有字母字符都小写
  • !:关闭大小写转换
  • :使用‘’转义上面列出的字符

掩码由掩码字符与分隔符字符串组成,后面可以跟一个分号和空白字符,空白字符在编辑后会从文本删除的

例如:

  • 000.000.000.000;_ ip地址,空白字符是‘_’
  • HH:HH:HH:HH:HH:HH; MAC地址
  • 0000-00-00;0 日期,空白字符是0
  • >AAAAA-AAAAA-AAAAA-AAAAA-AAAAA;# 许可证号,所有字母都转换为大写

5ec89a9a998994afa965ea080ddb985f.png

在QT设计师中切换信号模式,选中文本框拖动信号,弹出信号窗口

38412903f09dddf61917f557414eac72.png

QLineEdit信号

  • cursorPositionChanged(int,int)光标位置发生改变时发出的信号,并向外界传递位置(老的光标位置,新的光标位置)
  • editingFinished()结束编辑时发出的信号(焦点离开:回车键,Tab键,鼠标都可以触发)
  • returnPressed()按下回车键时发出的信号
  • selectionChanged()选中的文本发生改变时发出的信号
  • textChanged(QString)文本框文本发生改变时发出的信号,并向外界传递内容
  • textEdited(QString)文本编辑时发出的型号,并向外界传递内容

最后两个信号的差别在于:

  • textChanged(QString)不管是用户在文本框输入内容,还是开发人员使用代码设置内容,都会发出信号
  • textEdited(QString) 只有用户在文本框输入内容时,才会发出信号

QLineEdit还有一个比较重要的点就是验证器,需要使用代码操作

# 导入,Qapplication,单行文本框,窗口
from PyQt5.QtWidgets import QApplication, QLineEdit, QWidget
# 导入文本校验器:整数校验器,浮点数校验器,正则校验器
from PyQt5.QtGui import QIntValidator, QDoubleValidator, QRegExpValidator
# 导入Qt正则模块
from PyQt5.QtCore import QRegExp
import sys


class lineEditDemo(QWidget):
    def __init__(self, parent=None):
        super(lineEditDemo, self).__init__(parent)
        self.setWindowTitle('QLineEdit例子')
        self.resize(300, 300)

        int_validato = QIntValidator(50, 100, self)  # 实例化整型验证器,并设置范围为50-100
        int_le = QLineEdit(self)  # 整型文本框
        int_le.setValidator(int_validato)  # 设置验证
        int_le.move(50, 10)

        # 实例化浮点型验证器,并设置范围为-100到100,并精确2位小数
        float_validato = QDoubleValidator(-100, 100, 2, self)  
        float_le = QLineEdit(self)  # 浮点文本框
        float_le.setValidator(float_validato)  # 设置验证
        float_le.move(50, 50)

        re = QRegExp('[a-zA-Z0-9]+$')  # 正则:只允许出现的大小写字母和数字
        re_validato = QRegExpValidator(re, self)  # 实例化正则验证器
        re_le = QLineEdit(self)  # 正则文本框
        re_le.setValidator(re_validato)  # 设置验证
        re_le.move(50, 90)


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

在验证整数时,无法限定最小值,并且可输入的最大值,是上限位数的最大数值,

例如上限是10,那么可输入的最大值是99,上限是100,那么可输入的最大值是999,

对于浮点数,只能限制输入的小数位,无法设定数值范围,所以通常使用正则进行限定

  • "[a-zA-Z0-9]+$" 限制只允许出现大小写字母和数字
  • "^-?(180|1?[0-7]?d(.d{1,4})?)$" 限制浮点数输入范围为[-180,180],小数位后4位
  • "^([1-9]|[1-9]d|100)$" 限制整数输入访问[1,100]

下面这个网址有比较详细正则例子,请查阅!

RegularExpressionValidator控件中常见正则表达式用法 - happmaoo的专栏 - CSDN博客​blog.csdn.net

元宵节快乐

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值