【PyQt】10 QLineEdit

文章目录

  • 前言
  • 一、回显模式(EchoMode)
    • 1.1 四种回显模式
    • 1.2 代码展示
    • 运行结果
  • 二、校验器
    • 2.1 代码
    • 2.2 运行结果
  • 三、通过掩码限制输入
    • 3.1 代码
    • 3.2 运行结果
  • 总结


前言

1、QLineEdit 可以输入单行文字
2、回显模式
3、校验器
4、掩码输入


一、回显模式(EchoMode)

1.1 四种回显模式

1、Normal
输入什么,显示什么
2、NoEcho
输入信息,可以传达给计算机,但是不显示。
3、password
输入信息,可以传达给计算机,但是直接显示圆圈。
4、passwordEchoOnEdit
输入信息,先显示一段时间,然后变成掩码。

1.2 代码展示

'''
#Author :susocool
#Creattime:2024/2/9
#FileName:019 - QLineEdit
#Description:四种回显模式
'''
from PyQt5.QtWidgets import *
import sysclass QLineEditEchoMode(QWidget):def __init__(self):super(QLineEditEchoMode, self).__init__()self.initUI()def initUI(self):self.setWindowTitle('文本框的回显模式')formLayout = QFormLayout()normalLineEdit = QLineEdit()noEchoLineEdit = QLineEdit()passwordLineEdit = QLineEdit()passwordEchoOnEditLineEdit = QLineEdit()formLayout.addRow("Normal",normalLineEdit)formLayout.addRow("noEcho", noEchoLineEdit)formLayout.addRow("password", passwordLineEdit)formLayout.addRow("passwordEchoOnEdit", passwordEchoOnEditLineEdit )# setPlaceholderText() : 输入框(input)或文本区域(textarea)中的占位文本。normalLineEdit.setPlaceholderText('Normal')noEchoLineEdit.setPlaceholderText('NoEcho')passwordLineEdit.setPlaceholderText('password')passwordEchoOnEditLineEdit.setPlaceholderText('passwordEchoOnEdit')normalLineEdit.setEchoMode(QLineEdit.Normal)noEchoLineEdit.setEchoMode(QLineEdit.NoEcho)passwordLineEdit.setEchoMode(QLineEdit.Password)passwordEchoOnEditLineEdit.setEchoMode(QLineEdit.PasswordEchoOnEdit)self.setLayout(formLayout)if __name__ == '__main__':app = QApplication(sys.argv)main = QLineEditEchoMode()main.show()sys.exit(app.exec_())

运行结果

无输入
在这里插入图片描述
正常情况
在这里插入图片描述
已有输入,但是不显示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、校验器

限制输入是整数、浮点数或者满足一定条件的字符串。

2.1 代码

'''
#Author :susocool
#Creattime:2024/2/9
#FileName:020-QlineEdit校验器
#Description: 校验器
'''
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIntValidator,QDoubleValidator,QRegularExpressionValidator
from PyQt5.QtCore import QRegularExpression     # 正则表达式
import sysclass QLineEditValidator(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle('校验器')# 创建表单布局formLayout = QFormLayout()intLineEdit = QLineEdit()doubleEdit = QLineEdit()validatoredit = QLineEdit()formLayout.addRow('整数布局',intLineEdit)formLayout.addRow('浮点类型',doubleEdit)formLayout.addRow('数字和字母',validatoredit)intLineEdit.setPlaceholderText('整数(1~99)')doubleEdit.setPlaceholderText('浮点型(-360~360)')validatoredit.setPlaceholderText('字母和数字')# 整数校验器intValitor = QIntValidator(self)intValitor.setRange(1,99)# 浮点数校验器doubleValidator = QDoubleValidator(self)doubleValidator.setRange(-360,360)doubleValidator.setNotation(QDoubleValidator.StandardNotation)           # 正常显示浮点数doubleValidator.setDecimals(2)      # 设置精度,小数点后两位# 字符和数字# 表示匹配任意一个字母(大小写不敏感)或数字字符。+表示匹配前面的模式一次或多次。$表示匹配输入的结尾位置。reg = QRegularExpression('[a-zA-z0-9]+$')validator = QRegularExpressionValidator(reg,self)validatoredit.setValidator(validator)# 设置校验器intLineEdit.setValidator(intValitor)doubleEdit.setValidator(doubleValidator)validatoredit.setValidator(validator)# 设置布局 !!!self.setLayout(formLayout)if __name__ == '__main__':app = QApplication(sys.argv)main = QLineEditValidator()main.show()sys.exit(app.exec_())

2.2 运行结果

在这里插入图片描述

三、通过掩码限制输入

PyQt5系列教程(28): QLineEdit 2
在这里插入图片描述

3.1 代码

'''
#Author :susocool
#Creattime:2024/2/10
#FileName:021-QLineEdit掩码
#Description: '''
from PyQt5.QtWidgets import *
import sysclass QLineEditMask(QWidget):def __init__(self):super().__init__()self.initUI()def initUI(self):self.setWindowTitle("用掩码限制QLineEdit控件输入")formLayout = QFormLayout()ipLineEdit = QLineEdit()macLineEdit = QLineEdit()dateLineEdit = QLineEdit()licenseLineEdit = QLineEdit()# 设置掩码# 一般ip是192.168.21.21 一般是三位数ipLineEdit.setInputMask('000.000.000.000;_')    # 没有输入的时候显示是下划线的形式macLineEdit.setInputMask('HH:HH:HH:HH:HH:HH;_')dateLineEdit.setInputMask('0000-00-00')licenseLineEdit.setInputMask('>AAAAA-AAAAA-AAAA-AAAAA-AAAAA;#')formLayout.addRow('数字掩码',ipLineEdit)formLayout.addRow('Mac掩码',macLineEdit)formLayout.addRow('日期掩码',dateLineEdit)formLayout.addRow('许可证掩码',licenseLineEdit)self.setLayout(formLayout)if __name__ == '__main__':app = QApplication(sys.argv)main = QLineEditMask()main.show()sys.exit(app.exec_())

3.2 运行结果

在这里插入图片描述


总结

这篇文章依旧没有总结

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/677670.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux开发:PAM3 Ubuntu(22.04)安装PAM开发库

Ubuntu22.04默认是不带pam开发库的,需要通过以下命令进行安装 sudo apt install libpam0g-dev 关于PAM的文档可以参考: Ubuntu Manpage: pam - Pluggable Authentication Modules Library 也可以通过man进行查看: man 3 pam 编译程序是需要加…

16进制内存地址——计算机内存地址为什么用16进制?

在计算机底层,内存地址通常以十六进制表示。使用十六进制可以更好地理解和识别内存地址、指针和寄存器等底层系统信息。 谈到内存地址,不可避免引出指针的概念。 变量和数据在内存中是如何存放的呢?我们知道,所谓程序是由计算机&a…

k8s-资源限制与监控 15

资源限制 上传实验所需镜像 Kubernetes采用request和limit两种限制类型来对资源进行分配。 request(资源需求):即运行Pod的节点必须满足运行Pod的最基本需求才能 运行Pod。 limit(资源限额):即运行Pod期间,可能内存使用量会增加&#xff0…

Jupyter Notebook如何在E盘打开

Jupyter Notebook如何在E盘打开 方法1:方法2: 首先打开Anaconda Powershell Prompt, 可以看到默认是C盘。 可以对应着自己的界面输入: 方法1: (base) PS C:\Users\bella> E: (base) PS E:\> jupyter notebook方法2&#x…

[AIGC] Tomcat:一个简单 and 高效的 Java Web 服务器

Tomcat(Tomcat Server)是 Apache 基金会下的一个开源项目,它是一个简单 and 高效的 Java Web 服务器,支持 Servlet 2.5、JSP 2.2 和 EL 2.2 规范。Tomcat 是当今最受欢迎的 Java Web 服务器之一,它在 Java 世界中被广泛…

跳表详解和实现|深挖Redis底层数据结构

文章目录 跳表前言项目代码仓库认识跳表跳表的实现思路跳表性能分析对比平衡树(avl和红黑树)和哈希表使用手册成员变量成员函数构造析构迭代器sizeclearemptyoperatorfindinserterase 跳表细节实现节点定义跳表结构定义构造、析构、拷贝构造和赋值重载si…

人工智能算法:理解其工作原理及其在现实世界中的应用

随着科技的飞速发展,人工智能(AI)已逐渐成为我们生活中不可或缺的一部分。从智能语音助手到自动驾驶汽车,再到医疗诊断系统,人工智能算法正以前所未有的速度改变着我们的世界。本文将带您深入探讨人工智能算法的工作原…

【MySQL】数据库的基础——数据库的介绍、MySQL的介绍和架构、SQL分类、MySQL的基本使用、MySQL的存储引擎

文章目录 MySQL1. 数据库的介绍1.2 主流数据库 2. MySQL的介绍2.1 MySQL架构2.2 SQL分类2.3 MySQL的基本使用2.4 MySQL存储引擎 MySQL 1. 数据库的介绍 数据库(Database,简称DB)是按照数据结构来组织、存储和管理数据的仓库。它是长期存储在计…

uni-app x,一个纯原生的Android App开发工具

uni-app x,下一代uni-app,一个神奇的产品。 用vue语法、uni的组件、api,以及uts语言,编译出了kotlin的app。不再使用js引擎和webview。纯纯的kotlin原生app。 uni-app x,让“跨平台开发性能不如原生”的这条曾广为流…

面试 JavaScript 框架八股文十问十答第四期

面试 JavaScript 框架八股文十问十答第四期 作者:程序员小白条,个人博客 相信看了本文后,对你的面试是有一定帮助的!关注专栏后就能收到持续更新! ⭐点赞⭐收藏⭐不迷路!⭐ 1)new操作符的实现…

LLM之LangChain(七)| 使用LangChain,LangSmith实现Prompt工程ToT

如下图所示,LLM仍然是自治代理的backbone,可以通过给LLM增加以下模块来增强LLM功能: Prompter AgentChecker ModuleMemory moduleToT controller 当解决具体问题时,这些模块与LLM进行多轮对话。这是基于LLM的自治代理的典型情况,…

Linux 命令基础

Shell概述 Linux操作系统的Shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是命令语言、命令解释程序及程序设计语言的统称。 Shell是用户和Linux内核之间的接口程序,如果把硬件想象成一个球体的中心,内核围绕在硬件的外层管理着…

无锁序列系列笔记

下面是常见的一些实现方式: 1、借助智能指针来实现。下面是一篇参考博文 2、借助automic使用CAS(Compare And Swap)原子操作, std::atomic_flag,不同于所有 std::atomic 的特化,它保证是免锁的,不提供load()与store(val)操作&…

itextpdf使用:使用PdfReader添加图片水印

gitee参考代码地址:https://gitee.com/wangtianwen1996/cento-practice/tree/master/src/test/java/com/xiaobai/itextpdf 参考文章:https://www.cnblogs.com/wuxu/p/17371780.html 1、生成带有文字的图片 使用java.awt包的相关类生成带文字的图片&…

keil调试出现cannot evaluate新思路

我在用最新的keil时也出现了这个问题,网上说的办法几乎没啥用,包括魔术棒的设置和将变量定义为全局变量,都没用。 这里我使用的是keil5.13,编译器是AC6.21,硬件是STM32F407VET6 可以看到,即使是定义为全局变…

问题:超声波纵波斜入射时,当入射角大于第一临界角小于第二临界角时,在第二介质内只有折射横波。 #微信#经验分享#其他

问题:超声波纵波斜入射时,当入射角大于第一临界角小于第二临界角时,在第二介质内只有折射横波。 参考答案如图所示

QT - 嵌入式快速移植QT记录

QT快速移植指南 本指南旨在提供一个关于如何为特定目标平台快速移植QT应用程序的详细步骤说明。以下内容包含技术背景、配置步骤以及相关命令,帮助开发者有效地将QT应用部署在不同的硬件平台上。 技术背景 QT是一个跨平台的C图形用户界面应用程序开发框架&#x…

力扣94-二叉树的中序遍历

二叉树的中序遍历 题目链接 解题思路 递归解决先遍历左子树访问根节点再遍历右子树 /*** Definition for a binary tree node.* struct TreeNode {* int val;* TreeNode *left;* TreeNode *right;* TreeNode() : val(0), left(nullptr), right(nullptr) {}* …

对于模糊查询的SQL,怎么优先返回等值记录

说明:记录一次SQL改进的方法,希望能对大家有启发。 场景 前端项目有一个输入框,根据输入的银行名称,去模糊查询对应的数据库表,返回结果集,显示到下拉列表中。 因为银行名称字段包括了分行名&#xff0c…

缓存穿透、缓存击穿与缓存雪崩

缓存穿透、缓存击穿与缓存雪崩 1.本质区别 缓存穿透指的是数据库不存在数据,导致无法缓存,每次查询都查数据库,数据库压垮 缓存击穿指的是缓存键值对key过期了,key过期期间,大量请求访问,不经过缓存&…