PyQt5零基础入门(七)——文本编辑框

单行文本框控件(QLineEdit)

QLineEdit是一个小部件,通常用于创建用户界面中的文本输入框。它提供了简单而强大的文本编辑功能,适用于各种需要单行文本输入的应用程序。

from PyQt5.QtWidgets import *
import sys

class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.username_line = QLineEdit()
        self.password_line = QLineEdit()
        self.username_line.setPlaceholderText("输入姓名")
        self.password_line.setPlaceholderText("输入密码")
        self.password_line.setEchoMode(QLineEdit.Password)

        h_layout1 = QHBoxLayout()
        h_layout2 = QHBoxLayout()

        v_layout = QVBoxLayout()

        h_layout1.addWidget(QLabel("UserName:"))
        h_layout1.addWidget(self.username_line)

        h_layout2.addWidget(QLabel("PassWord:"))
        h_layout2.addWidget(self.password_line)

        v_layout.addLayout(h_layout1)
        v_layout.addLayout(h_layout2)

        self.setLayout(v_layout)


if __name__ == "__main__":
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())


运行结果如下:
在这里插入图片描述
QLineEdit的常用方法如下:

方法描述
setPlaceholderText设置输入框中的占位符文本。输入框为空时显示的提示性文本
setEchoMode用于设置输入回显模式,即用户在输入框中输入的内容的显示方式
text获取文本内容
setMaxLength传入整数,设置允许输入的最大字符数
setReadOnly设置为只读
setText传入字符串,用来设置QLineEdit文本内容
setTextMargins传入4个整数值,用来设置文本左、上、右、下4个方向上的边距

在上述的代码中使用setPlaceholderText占位,即“输入姓名”和“输入密码”。随后使用setEchoMode设回显模式,常用的回显模式如下:

回显模式描述
QLineEdit.Normal默认显示输入内容
QLineEdit.NoEcho不显示任何内容
QLineEdit.Password密文显示
QLineEdit.PasswordEchoOnEdit输入时用明文,输出完毕转为密文

在本代码中使用的是Password,即输入时就是密文
运行结果如下:
在这里插入图片描述

文本编辑框控件(QTextEdit)

与之前的QLineEdit相比不同的是,QTextEdit可以容纳输入多行的信息。

from PyQt5.QtWidgets import *
import sys


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.edit = QTextEdit()

        h_layout = QHBoxLayout()
        h_layout.addWidget(self.edit)
        self.setLayout(h_layout)


if __name__ == "__main__":
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())

运行效果如下:
在这里插入图片描述
当输入信息超过QTextEdit的容纳范围后,QTextEdit会自动拓展到下一行,右侧会自动增加一个垂直进度条。
在这里插入图片描述

添加水平滚动条
如果不想使用垂直滚动条可以使用setLineWrapMode(QTextEdit.NoWrap) 来生成一个水平滚动条来显示超出控件文本部分。

from PyQt5.QtWidgets import *
import sys


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.edit = QTextEdit()
        self.edit.setLineWrapMode(QTextEdit.NoWrap)  # 水平滑动条

        h_layout= QHBoxLayout()
        h_layout.addWidget(self.edit)
        self.setLayout(h_layout)


if __name__ == "__main__":
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())

使用setLineWrapMode(QTextEdit.NoWrap) 后,在下侧显示出来一个水平滚动条,运行结果如下:

在这里插入图片描述

QTextEdit的常用方法如下:

方法描述
toHtml以HTML格式返回QTextEdit中的文本内容
toMarkdown以markdown格式返回QTextEdit中的文本内容
toPlainText以纯文本格式返回QTextEdit中的文本内容
setReadOnly设置为只读模式
setHtml传入HTML格式的字符串,将其显示在QTextEdit
setMarkdown传入setMarkdown格式的字符串,将其显示在QTextEdit
setPlainText传入setPlainText格式的字符串,将其显示在QTextEdit

文本浏览框控件(QTextBrowser)

其实QTextBrowser就只是使用了setReadOnly(True)之后的样子。

from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
import sys


class Window(QWidget):
    def __init__(self):
        super(Window, self).__init__()
        self.cnt = 0
        self.brower = QTextBrowser()
        self.button = QPushButton('新增一行')
        self.button.clicked.connect(self.append_text)

        v_layout = QVBoxLayout()
        v_layout.addWidget(self.brower)
        v_layout.addWidget(self.button)
        self.setLayout(v_layout)

    def append_text(self):
        self.cnt += 1
        self.brower.append(f'+{self.cnt}')
        self.brower.moveCursor(QTextCursor.End)


if __name__ == '__main__':
    app = QApplication([])
    win = Window()
    win.show()
    sys.exit(app.exec())

运行结果如下:
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RK3568平台开发系列讲解(Linux系统篇)device 资源的获取

🚀返回专栏总目录 文章目录 一、platform_device 结构体二、platform_get_resource() 获取沉淀、分享、成长,让自己和他人都能有所收获!😄 一、platform_device 结构体 struct platform_driver 结构体继承了 struct device_driver 结构体, 因此可以直接访问 struct devi…

Python qt.qpa.xcb: could not connect to display解决办法

遇到问题:qt.qpa.xcb: could not connect to display 解决办法,在命令行输入: export DISPLAY:0 然后重新跑python程序,解决! 参考博客:qt.qpa.xcb: could not connect to displayqt.qpa.plugin: Could …

Spring Boot + security + jwt 测试安全策略

一、测试概述 主要目的是测试security的用法。因测试搭建mysql和redis比较麻烦,所以我这里将自定义的jwt和用户信息缓存到程序的内存中。 本人测试的项目比较混乱,Spring Boot父类只标出有用的依赖。其子类用的版本为jdk11。后续会继续深入oauth2&#x…

【web安全】文件上传漏洞

upload-labs靶场 第一关 绕过前端 先打开哥斯拉,生成木马,选择php 打开brup开浏览器,上传文件,就会发现被阻止了,还没抓到包呢 那就是被前端代码阻止了,那通常前端代码都只能防御后缀名 我们抓到包后直…

分布式因果推断在美团履约平台的探索与实践

美团履约平台技术部在因果推断领域持续的探索和实践中,自研了一系列分布式的工具。本文重点介绍了分布式因果树算法的实现,并系统地阐述如何设计实现一种分布式因果树算法,以及因果效应评估方面qini_curve/qini_score的不足与应对技巧。希望能…

Android MediaCodec 简明教程(四):使用 MediaCodec 将视频解码到 Surface,并使用 SurfaceView 播放视频

系列文章目录 Android MediaCodec 简明教程(一):使用 MediaCodecList 查询 Codec 信息,并创建 MediaCodec 编解码器Android MediaCodec 简明教程(二):使用 MediaCodecInfo.CodecCapabilities 查…

微信小程序(二十五)条件判断语句与结构隐藏

注释很详细&#xff0c;直接上代码 上一篇 新增内容&#xff1a; 1.条件判断语句的演示 2.隐藏结构的演示 源码&#xff1a; index.wxml <view><!-- wx:if和wx:else为条件判断语句 --><text wx:if"{{isLogin}}">已登入的用户</text><tex…

Flutter 应用服务:主题、暗黑、国际化、本地化-app_service库

Flutter应用服务 主题、暗黑、国际化、本地化-app_service库 作者&#xff1a;李俊才 &#xff08;jcLee95&#xff09;&#xff1a;https://blog.csdn.net/qq_28550263 邮箱 &#xff1a;291148484163.com 本文地址&#xff1a;https://blog.csdn.net/qq_28550263/article/det…

(一)PySpark3:安装教程及RDD编程(非常详细)

目录 一、pyspark介绍 二、PySpark安装 三、RDD编程 1、创建RDD 2、常用Action操作 ①collect ②take ③takeSample ④first ⑤count ⑥reduce ⑦foreach ⑧countByKey ⑨saveAsTextFile 3、常用Transformation操作 ①map ②filter ③flatMap ④sample ⑤d…

SQL报错注入

君衍. 一、sqllabs第五关报错注入updatexml报错注入原理及思路 二、常见的报错函数三、floor报错注入原理1、概念2、函数回顾2.1 rand函数2.2 floor(rand(0)*2)函数2.3 group by函数2.4 count(*)函数2.5 函数综合报错 3、报错分析4、总结 一、sqllabs第五关报错注入 之前我在这…

Linux系列之查看cpu、内存、磁盘使用情况

查看磁盘空间 df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间&#xff0c;目前还剩下多少空间等信息。使用df -h命令&#xff0c;加个-h参数是为了显示GB MB KB单位&#xff0c;这样更容易查看 Filesystem …

使用Hugging Face下载ImageNet

1. 创建Hugging Face账号&#xff0c;在个人中心的setting部分&#xff0c;生成Access Token 2. 使用在python命令行中运行&#xff1a; pip install datasets 此时需要输入token 3. 新建一个python文件 from datasets import load_dataset dset load_dataset(imagenet-1k…

http-server开启一个服务器

前言 在写前端页面中&#xff0c;经常会在浏览器运行HTML页面&#xff0c;从本地文件夹中直接打开的一般都是file协议&#xff0c;当代码中存在http或https的链接时&#xff0c;HTML页面就无法正常打开&#xff0c;为了解决这种情况&#xff0c;需要在在本地开启一个本地的服务…

vuex store,mutations,getters,actions

文章目录 1.vuex概述2.构建vuex【多组件数据共享】环境Son1.vueSon2.vueApp.vue 3.创建一个空仓库4.如何提供&访问vuex的数据①核心概念 - state状态1.通过store直接访问2.通过辅助函数简化代码 ②核心概念 - mutations&#xff08;粗略&#xff09; 5.核心概念 - mutation…

如何在 VM 虚拟机中安装 Kail Linux 2023.4 操作系统保姆级教程(附链接)

一、VMware Workstation 虚拟机 先得安装 VM 虚拟机&#xff0c;没有的可以参考这篇文章安装 VM 虚拟机 如何在 VM 虚拟机中安装 Win10 操作系统保姆级教程&#xff08;附链接&#xff09;https://eclecticism.blog.csdn.net/article/details/135713915 二、Kail 镜像 进入…

树控件、下拉框、文本框常用测试用例

01 控件的测试外观操作 1&#xff09;项目中的所有树是否风格一致 2&#xff09;树结构的默认状态是怎样的。比如默认树是否是展开&#xff0c;是展开几级&#xff1f; 是否有默认的焦点&#xff1f;默认值是什么&#xff1f;展开的节点图标和颜色&#xff1f; 3&#xff09…

关于如何将Win幻兽帕鲁服务端存档转化为单人本地存档的一种方法(无损转移)

本文转自博主的个人博客&#xff1a;https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接&#xff1a;点我访问 **起因&#xff1a;**最近大火的开放世界缝合体游戏幻兽帕鲁的大火也是引起了博主的注意&#xff0c;然后博主和周边小伙伴纷纷入手&#xff0c;博主也是利…

谷歌人工智能视频生成器-LUMIERE(未开源)

Google重磅发布视频生成模型Lumiere 据说后续会开源 亮点1.支持文本到视频与图像到视频 亮点2.画风迁移 亮点3.运动蒙版 亮点4.视频编辑 亮点5.视频修复 谷歌视频模型可以生成80帧的片段&#xff01;不仅画质好、质量高&#xff0c;而且时长更长。 视频局部编辑 这项功能可以…

07.领域驱动设计:了解3种常见微服务架构模型的对比和分析

目录 1、概述 2、整洁架构 3、六边形架构 4、三种微服务架构模型的对比和分析 5、从三种架构模型看中台和微服务设计 5.1 中台建设要聚焦领域模型 5.2 微服务要有合理的架构分层 5.2.1 项目级微服务 5.2.2 企业级中台微服务 5.3 应用和资源的解耦与适配 6、总结 1、概…

C语言-动态内存申请

一、动态分配内存的概述 在数组一章中&#xff0c;介绍过数组的长度是预先定义好的&#xff0c;在整个程序中固定不变&#xff0c;但是在实际的编程中&#xff0c;往往会发生这种情况&#xff0c;即所需的内存空间取决于实际输入的数据&#xff0c;而无法预先确定 。为了解决…