PyQt5学习笔记(二) 文本控件及使用_pyqt5中文字区域控件-程序员宅基地

技术标签: # PyQt5  Python  

写在前面

上回写了一下PyQt5的一些入门的内容以及QLabel的使用。这次主要总结一下文本控件(单行:QLineEdit;多行:QTextEdit)的几种方法以及具体实现。

其实这个文本控件,说白了就是控制数据输入输出的控件,下面具体介绍。

QLineEdit控件

主要用于单行文本的输入,有如下的几个常用方法:

  1. .setReadOnly(True):设置只读文本。
  2. .setInputMask('99_9;#'):设置ASCII掩码,下面详细介绍。
  3. .setValidator():设置校验器。
  4. .setEchoMode()设置回显模式。
  5. .setMaxLength():设置文本最大长度。
  6. .setAlignment():设置输入文本的对齐方式。
  7. .setFont():设置文本的字体及大小。

回显模式(Echo Mode)

顾名思义,就是在用户键入文本后在GUI界面的现实情况,在PyQt5中QLineEdit控件有如下的四种回显模式。

  1. Normal:正常,即直接输出用户输入的文本,不做任何处理。
  2. NoEcho:无回显,即隐藏用户的输入,在Linux的终端中常见。
  3. Password:密码,以大黑圆点(我起的)显示用户的输入,常用于各类密码的设置。
  4. PasswordEchoOnEdit:正在编辑状态的密码,即用户用户输入时为Normal模式,停止编辑后变成大黑圆点。

校验器(Validator)

用于限制用户的输入,如限制只能输入整数、浮点数或规则字符串(支持正则表达式,需要导入QRegExp模块)。

  1. 校验整数:QIntValidator()以及.setRange(),后者设置数字范围
  2. 校验浮点数:QDoubleValidator().setRange().setNotation().setDecimals(),后者分别设置数字范围、表示法及精度
  3. 校验数字+字母:QRegExpValidator().setRegExp()使用正则表达式,例如仅允许用户输入数字及字母,可记为:QRegExp('[a-zA-z0-9+$]')

ASCII掩码

用ASCII掩码限制QLineEdit控件的输入(下面的内容来自李宁老师的PyQt5课程的资料,有兴趣可以从B站评论区下载)。以下是一些掩码及其对应的内容。

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

QTextEdit控件

主要用于多行文本的输入和输出,支持HTML标签语法,不过输出的一整段HTML是完整的HTML文件,包含头(DOCTYPE)和内容(<body></body>)。

  1. .setPlainText():显示普通文本。
  2. .toPlainText():读取已输入的文本到Python控制台。
  3. .setHtml():显示带HTML标签的文本。
  4. .toHtml():读取已输入的HTML标签(一个完整HTML文件的全部内容)到Python控制台。

其他不常用的一些文本控件

QSpinBox控件

专门用于输入输出整数的控件,还可以使用二进制、十六进制显示。其实严格意义上说这个控件应该叫计数器控件。

QDoubleSpinBox控件

专门用于输入输出浮点数的控件。

这里不进行详细的代码介绍,感兴趣的话可以参看文献[1]。

小结

本文介绍了两种主要的文本控件,以及一些不常用的文本控件,这些控件用于在GUI中进行数据的输入和输出的控制,是常用的控件类型,需要熟悉一些主要的方法及其调用。

主要参考

[1] 王维波, 栗宝鹃, 张晓东. Python Qt GUI与数据可视化编程. 人民邮电出版社. 2019.9.
[2] 网易云课程:《PyQt5教程》. 李宁.

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41437512/article/details/107854722

智能推荐

Ext2、Ext3、Ext4的区别_ext2 ext3 ext4区别-程序员宅基地

文章浏览阅读6.9k次。这三个都是文件的系统格式1&gt;Linux kernel自2.6.28开始正式支持新的文件系统Ext4;2&gt;Ext3对Ext2只是增加了一个日志功能而已,Ext4是Ext3的改进版,修改了Ext3中部分重要的数据结构,提供更加的性能和可靠性,更丰富的功能,更大的文件系统和更大的文件。(Ext3支持最大16TB文件系统和最大2TB文件,Ext4分别支持1EB的文件系统,和16TB的文..._ext2 ext3 ext4区别

FFmpeg WAV文件转换_ffmpeg mp4转wav-程序员宅基地

文章浏览阅读4.2k次。FFmpeg WAV文件转换_ffmpeg mp4转wav

PMI-ACP练习题(17)_根据敏捷宣言以下哪一项属于敏捷原则-程序员宅基地

文章浏览阅读211次。A. Defect-stream and Value-stream B. Information-flow and information-owner C. Value-added and non value-added D. Sigma-ranked and Theta-prioritized 哈利的敏捷团队刚完成了其中一个产品的价值流程图。_根据敏捷宣言以下哪一项属于敏捷原则

开发者必知的8款App快速开发工具-程序员宅基地

文章浏览阅读2.5k次。“我有一个好创意,就差一个CTO……” “原生APP开发难度大,周期长,成本高,还没上线市场已经被占领了。” “APP版本迭代更新,都是企业的一道难关,没有一个一劳永逸的解决方式吗?” “一个Web开发者如何能快速适应移动互联网时代,用HTML5开发出一个APP呢?” “安卓、IOS双平台同时开发,程序员都累死在加班的路上了……”针对行业痛点,国内外涌现出众多APP开发工具,开发者只要有相..._开发app 开发工具

Centos curl command not found_centos cur command not found-程序员宅基地

文章浏览阅读1.2k次。试过了很多帖子的办法,各种安装都不行这个亲测可以: yum install -y curl 或者 sudo yum -y install curl_centos cur command not found

windows安装k8s-程序员宅基地

文章浏览阅读8.1k次。安装minikube minikube安装包下载 下载minikube-linux-amd64 执行命令安装chmod +x minikube &amp;amp;&amp;amp; sudo mv minikube /usr/local/bin/查看版本以及是否安装成功minikube version用指定镜像地址启动minikube start --registry-mirr...

随便推点

Vue:前端体系与前后端分离_vue前后端分离 web架构设计-程序员宅基地

文章浏览阅读1.5k次,点赞6次,收藏36次。Vue:前端体系与前后端分离概述介绍​ Vue(读音/viu/,类似于 view)是一套用于构建用户界面的渐进式框架,发布干 2014 年 2 月.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库(如:vue-router:跳转,vue-resource:通信, vuex:管理)或既有项目整合。官网:https://cn.vuejs.org/v2/guide/前端知识体系想要成为真正的“互联网 Java 全栈工程师”还_vue前后端分离 web架构设计

java预约功能_实现预约功能-程序员宅基地

文章浏览阅读3.8k次。[java]代码库package com.hospital.servlet;import java.io.IOException;import java.io.PrintWriter;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;..._java显示没半个小时的预约量

matlab2014a vs2015,Matlab2014a使用VS2015混合编译-程序员宅基地

文章浏览阅读277次。matlab的版本要到2015b才支持vs2015,然而自己电脑上用的matlab2014a,和VS2015社区版,不想重新安装,需要替换其mexopts文件夹,估计就类似于一个mex的Makefile文件,路径为R2014a\bin\win64\mexopts。下载之,替换即可。mexopts文件夹的下载地址为http://pan.baidu.com/s/1o8hR926,之后做以下步骤编译即可..._vs2015用那一版本matlab

Unity中的UGUI源码解析之事件系统(6)-RayCaster(下)_physics raycaster-程序员宅基地

文章浏览阅读2.2k次,点赞8次,收藏3次。Unity中的UGUI源码解析之事件系统(6)-RayCaster(下)接上一篇文章, 继续介绍投射器.GraphicRaycasterGraphicRaycaster继承于BaseRaycaster, 是BaseRaycaster具体实现类, 是针对UGUI元素的投射器, 需要对象上同时存在Canvas组件.值得一提的是, GraphicRaycaster和PhysicsRaycaster还有Physics2DRaycaster存放的目录不同, 后面两个放在EventSystem目录下, 而Gr_physics raycaster

12.触摸屏驱动_12c接口 触摸屏-程序员宅基地

文章浏览阅读900次。触摸屏子系统是通过input子系统来实现,对应设备节点 /dev/input/eventn,熟悉套路后重点放在硬件程序的编写一、内核自带触摸屏驱动S3c2410_ts的简单分析S3c2410_ts.c (drivers\input\touchscreen) 内核自带三星的触摸屏驱动(1)入口函数:/*注册一个平台driver*/static int __init s3c2410ts_init(void){// init_MUTEX(&gADClock); _12c接口 触摸屏

VC画面闪烁及解决方法-程序员宅基地

文章浏览阅读832次。http://topic.csdn.net/u/20080219/21/0B5F0688-0651-45C4-AA99-7C19A0C2C900.html转载于:https://www.cnblogs.com/aoyihuashao/archive/2009/12/14/1623694.html_vc 子文档最大化时闪

推荐文章

热门文章

相关标签