从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件

简介: 从零开始学Pyqt5之【控件介绍】(2):QLineEdit控件

QLineEdit控件的作用


QLineEdit是一个单行文本框控件,可以输入单行字符串。如果需要输入多行字符串,则使用QTextEdit控件。


QLineEdit控件常用的方法

7f227ae7d53c4655a3133084066908aa.png

QLineEdit控件常用的信号


611d456623a349a4bc0f9ff57942a5d7.png


QLineEdit不同模式的显示效果演示


文本框的4类输入文本显示格式


  • QLineEdit.Normal,正常显示所输入的字符,此为默认选项;
  • QLineEdit.NoEcho,不显示任何输入的字符。常用于密码类型的输入,且其密码长度需要保密时
  • QLineEdit.Password,显示与平台相关的密码掩码字符,而不是实际输入的字符;
  • QLineEdit.PasswordEchoOnEdit:在编辑时显示字符,负责显示密码类型的输入。


代码演示


# -*- coding: utf-8 -*-
from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
import sys  
class lineEditDemo(QWidget):
  def __init__(self, parent=None):
    super(lineEditDemo, self).__init__(parent)
    self.setWindowTitle("QLineEdit例子")
    flo = QFormLayout()
    pNormalLineEdit = QLineEdit()
    pNoEchoLineEdit = QLineEdit()
    pPasswordLineEdit = QLineEdit( )
    pPasswordEchoOnEditLineEdit = QLineEdit( )
    flo.addRow("Normal", pNormalLineEdit)
    flo.addRow("NoEcho", pNoEchoLineEdit)
    flo.addRow("Password", pPasswordLineEdit)
    flo.addRow("PasswordEchoOnEdit", pPasswordEchoOnEditLineEdit)
    pNormalLineEdit.setPlaceholderText("Normal")
    pNoEchoLineEdit.setPlaceholderText("NoEcho")
    pPasswordLineEdit.setPlaceholderText("Password")
    pPasswordEchoOnEditLineEdit.setPlaceholderText("PasswordEchoOnEdit")
    # 设置显示效果
    pNormalLineEdit.setEchoMode(QLineEdit.Normal)
    pNoEchoLineEdit.setEchoMode(QLineEdit.NoEcho)
    pPasswordLineEdit.setEchoMode(QLineEdit.Password)
    pPasswordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)
    self.setLayout(flo)
if __name__ == "__main__":       
  app = QApplication(sys.argv)
  win = lineEditDemo()  
  win.show()  
  sys.exit(app.exec_())


代码运行结果如下:


ca620eedff3c4fd3b1e5338bbb5a5132.png


在文本框中输入数字效果如下:


fd7aa41817bd433a95c20c60f5fee748.png


文本框的验证器


很多情况,我们需要对用户的输入做一些限制,可以通过验证器来进行。


常见的验证器有:


1.整型验证器、

2.浮点型验证器

3.及其他自定义验证器。


验证器代码实例


# -*- coding: utf-8 -*-
'''
验证器例子      
'''
from PyQt5.QtWidgets import QApplication,  QLineEdit , QWidget ,  QFormLayout
from PyQt5.QtGui import QIntValidator ,QDoubleValidator  , QRegExpValidator
from PyQt5.QtCore import QRegExp
import sys  
class lineEditDemo(QWidget):
  def __init__(self, parent=None):
    super(lineEditDemo, self).__init__(parent)
    self.setWindowTitle("QLineEdit例子")
    # 表单布局
    flo = QFormLayout()
    pIntLineEdit  = QLineEdit( )
    pDoubleLineEdit  = QLineEdit()
    pValidatorLineEdit  = QLineEdit( )
    flo.addRow("整形", pIntLineEdit)
    flo.addRow("浮点型", pDoubleLineEdit)
    flo.addRow("字母和数字", pValidatorLineEdit)
    pIntLineEdit.setPlaceholderText("整形")
    pDoubleLineEdit.setPlaceholderText("浮点型")
    pValidatorLineEdit.setPlaceholderText("字母和数字")
    # 整形 范围:[1, 99]
    pIntValidator = QIntValidator(self)
    pIntValidator.setRange(1, 99)
    # 浮点型 范围:[-360, 360] 精度:小数点后2位
    pDoubleValidator = QDoubleValidator(self)
    pDoubleValidator.setRange(-360, 360)
    pDoubleValidator.setNotation(QDoubleValidator.StandardNotation)
    pDoubleValidator.setDecimals(2)
    # 字符和数字
    reg = QRegExp("[a-zA-Z0-9]+$")
    pValidator = QRegExpValidator(self)
    pValidator.setRegExp(reg) 
        # 设置验证器
    pIntLineEdit.setValidator(pIntValidator)
    pDoubleLineEdit.setValidator(pDoubleValidator)
    pValidatorLineEdit.setValidator(pValidator)
    self.setLayout(flo)                        
if __name__ == "__main__":       
  app = QApplication(sys.argv)
  win = lineEditDemo()  
  win.show()  
  sys.exit(app.exec_())


代码运行结果:


0ceb5b24996a46a18a3113b461ee49a7.png

相关文章
|
Python
『PyQt5-基础篇』| 02 Pyqt5开发环境+安装配置QtDesigner
『PyQt5-基础篇』| 02 Pyqt5开发环境+安装配置QtDesigner
494 0
|
Python
Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现
Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现
960 0
Python操作excel进行插入、删除行操作实例演示,利用xlwings库实现
|
存储 Java 开发工具
IDEA+Java控制台实现学生信息管理系统
IDEA+Java控制台实现学生信息管理系统
1339 0
IDEA+Java控制台实现学生信息管理系统
|
11月前
|
供应链 监控 搜索推荐
企业销售管理利器:销售易、飞鱼和800客CRM深度解析
- **销售易**:集营销、销售和服务于一体,提供全渠道获客、潜客识别、线索转化等功能,适合中大型企业,尤其适用于快消品、汽车等行业。 - **飞鱼**:由巨量引擎推出,专注于广告主的销售线索管理,实现自动获取、同步及跟进,适合各类规模企业,广泛应用于电商、金融等领域。 - **800客**:功能全面,涵盖市场、客户、销售、服务等管理模块,适合中小型到大型企业,提供定制化服务,满足个性化需求。 通过对比各产品的功能与适用场景,企业可根据自身需求选择最合适的CRM解决方案,以优化销售流程并深化客户关系。
|
SQL 存储 关系型数据库
mysql事务失效
mysql事务失效
685 0
|
前端开发 JavaScript 开发者
【专栏:HTML与CSS前端技术趋势篇】前端框架(React/Vue/Angular)与HTML/CSS的结合使用
【4月更文挑战第30天】前端框架React、Vue和Angular助力UI开发,通过组件化、状态管理和虚拟DOM提升效率。这些框架与HTML/CSS结合,使用模板语法、样式管理及组件化思想。未来趋势包括框架简化、Web组件标准采用和CSS在框架中角色的演变。开发者需紧跟技术发展,掌握新工具,提升开发效能。
350 11
|
存储 Cloud Native Java
Linux下systemd深入指南:如何优化Java服务管理与开机自启配置
Linux下systemd深入指南:如何优化Java服务管理与开机自启配置
652 0
|
机器学习/深度学习 算法 固态存储
选择性搜索算法(Selective Search)超详解(通俗易懂版)
选择性搜索算法(Selective Search)超详解(通俗易懂版)
选择性搜索算法(Selective Search)超详解(通俗易懂版)
|
中间件 Go 微服务
字节微服务HTTP框架Hertz使用与源码分析|拥抱开源
Hertz是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能等特点。
652 0
字节微服务HTTP框架Hertz使用与源码分析|拥抱开源