Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用PyQt5做图形界面(二)文本组件:QLabel、QLineEdit、QTextEdit

用PyQt5做图形界面(二)文本组件:QLabel、QLineEdit、QTextEdit

作者头像
ExASIC
发布于 2023-02-17 12:26:12
发布于 2023-02-17 12:26:12
2.9K00
代码可运行
举报
文章被收录于专栏:ExASICExASIC
运行总次数:0
代码可运行

今天介绍文本相关的三个组件:QLabel、QLineEdit、QTextEdit。

三者的区别是:QLabel一般用来显示提示性的文本或者说明,用户不可以直接修改内容。QLineEdit用来收集用户输入(单行文本,不能换行)。而QTextEdit用来收集用户输入的一大段文字。

需求:

做一个BUG提交的界面,用户可以输入BUG的标题和描述,点击按钮后,获取用户填写的信息,并显示在终端里。

分析:

我们先来做一些准备,提前学习几个函数。对于文本来说,最常用的就“设置文本”和“获取文本”。

QLabel和QLineEdit,setText(string)为设置文本,text()为获取文本。

而QTextEdit功能较为复杂,支持纯文本模式,也支持富文本模式(即html、插入图片、设置不同的格式等)。我们今天只会用到toPlainText()来获取QTextEdit的文本。

整理如下:

  • QLabel.setText(string) 设置标签的文本
  • QLineEdit.text() 获取单行文本框中的文字
  • QTextEdit.toPlainText() 获取多行文本框中的文字

代码实现:

在《用PyQt5做图形界面(一)Hello world》的基础上,添加几个组件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# BUG标题
label1 = QLabel()
label1.setText('Bug Title:')
vbox.addWidget(label1)

edit1 = QLineEdit()
vbox.addWidget(edit1)

# BUG描述
label2 = QLabel()
label2.setText('Bug Description:')
vbox.addWidget(label2)

edit2 = QTextEdit()
vbox.addWidget(edit2)

实现提交按钮的处理函数。从QLineEdit和QTextEdit中取出文字,并print出来。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def submit_handle():
    bug_title = edit1.text()
    bug_description = edit2.toPlainText()
    print('Bug title is {},\nDescription is\n{}'.format(
        bug_title, 
        bug_description))

最后,在界面上创建按钮,并连接到submit_handle()函数:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
button = QPushButton('Submit')
button.clicked.connect(submit_handle)
vbox.addWidget(button)

效果展示:http://mpvideo.qpic.cn/0bc3ruabqaaarqanvexd2nrvbdoddcgqagaa.f10002.mp4?

总结:

在学习和使用pyqt5基本组件时,可以查阅pyqt5的官方类库(https://doc.qt.io/qtforpython-5/PySide2/QtWidgets/index.html#module-PySide2.QtWidgets),找到相类组件可操作的函数列表,并阅读相关函数的说明。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-02-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ExASIC 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
在 PyQt5 中,信号(Signal) 和 槽(Slot) 是处理事件和交互的核心机制。信号代表某个事件的发生,而槽是信号触发后执行的函数。
半截诗
2024/10/09
3.6K0
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
PyQt5案例汇总(完整版)
PyQt5是一套绑定Qt5的应用程序框架。他在Python 2.x和3.x中都是可用的。该教程使用的是Python3.x。
victorfengming
2021/11/26
5.3K0
PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
文章目录 1. 状态栏 2. 窗口居中显示 3. 关闭窗口 4. QWidget 5. 添加图标 6. 气泡提示信息 7. QLabel 添加快捷键 8. QLineEdit echoMode 验证器 inputMask 综合练习 9. QTextEdit learn from 《PyQt5 快速开发与实战》 1. 状态栏 self.statusbar.showMessage("hello, Michael", 2000),第二个参数是显示多长时间ms,默认无限长时间 # -*- coding: utf-8
Michael阿明
2022/05/10
2.7K0
PyQt5 基本窗口控件(状态栏/窗口/图标/提示消息/QLabel/文本类控件)
PyQt5 基本窗口控件(绘图类 / 拖拽 / 剪贴板 / 日历时间 / 菜单、工具、状态栏 / 打印)
learn from 《PyQt5 快速开发与实战》 https://doc.qt.io/qtforpython/index.html https://www.riverbankcomputing.com/static/Docs/PyQt5
Michael阿明
2022/05/10
2K0
PyQt5 基本窗口控件(绘图类 / 拖拽 / 剪贴板 / 日历时间 / 菜单、工具、状态栏 / 打印)
用PyQt5做图形界面(一)Hello world
PyQt是Python版本的Qt库,是最常用的跨平台图形界面编程框架之一。代码不用修改,就能同时运行在windows、linux、ios、andriod等平台。因此,对芯片设计行业来说,既可以用来开发大型EDA工具(通常用Qt的C++库),也可以用来开发公司内部的flow工具,还可以用作应用工程师的测试工具。所以,今天,以Linux平台为例,来介绍一下Python Qt的基本用法。
ExASIC
2023/02/17
1.7K0
用PyQt5做图形界面(一)Hello world
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
PyQt5 是 Python 的图形用户界面 (GUI) 框架,它基于强大的 Qt 库。Qt 是一个跨平台的 C++ 框架,用于构建桌面应用程序。通过 PyQt5,我们可以用 Python 轻松构建跨平台的桌面应用程序,支持 Windows、macOS 和 Linux。
半截诗
2024/10/09
23K0
【Python篇】PyQt5 超详细教程——由入门到精通(序篇)
Python 图形界面框架 PyQt5 使用指南!
使用Python开发图形界面的软件其实并不多,相对于GUI界面,可能Web方式的应用更受人欢迎。但对于像我一样对其他编程语言比如C#或WPF并不熟悉的人来说,未必不是一个好的工具。
快学Python
2021/12/13
9.2K0
Python 图形界面框架 PyQt5 使用指南!
pyQt6做一个登陆界面
云帆沧海
2024/01/24
6490
PyQt5 布局管理(水平、垂直、网格、表单、嵌套、QSplitter)
learn from 《PyQt5 快速开发与实战》 https://doc.qt.io/qtforpython/index.html https://www.riverbankcomputing.com/static/Docs/PyQt5
Michael阿明
2022/06/06
4.8K0
PyQt5 布局管理(水平、垂直、网格、表单、嵌套、QSplitter)
PyQt5 内嵌浏览器注入 Javas
应同学邀请,演示如何使用 PyQt5 内嵌浏览器浏览网页,并注入 Javascript 脚本实现自动化操作。
py3study
2020/01/03
1.5K0
Python高级进阶#010 pyqt5网格布局QGridLayout
我们其实可以通过网格布局实例化后的对象,直接通过代码提示的方式看到很多我们可以直接实现的方法。
刘金玉编程
2019/10/23
2.3K0
Python高级进阶#010 pyqt5网格布局QGridLayout
python3.5 + PyQt5 +Eric6实现简易计算器
python动手项目之一,很久之前写的了,现在拿出来,我刚学python练手的项目。
雷子
2021/03/15
6540
python3.5 + PyQt5 +Eric6实现简易计算器
多线程界面化、ONNXRUNTIME + YOLOv8推理演示
2023年一月份跟二月份创建了一个PyQT5人工智能软件开发系列的文章系列,过去的两个月都没怎么更新,心里一直想有时间继续更新下去,今天又更新了一篇,基于PyQT5实现多线程、界面化、YOLOv8对象检测、实例分割、姿态评估的推理。
OpenCV学堂
2023/08/22
1.4K0
多线程界面化、ONNXRUNTIME + YOLOv8推理演示
PyQt QStackedWidget(层叠窗口部件)
QStackedWidget (层叠窗口部件)和 QTabWidget 的作用相似,都可以把多组不同的部件 放置到不同的页面显示,从而节省 窗口空间。它们的使用方法也相似,通过下面的方法可以添加页面:
用户6021899
2019/08/14
3.4K0
python pyqt5 QLabel控件
from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout from PyQt5.QtCore import Qt from PyQt5.QtGui import QPixmap, QPalette import sys
用户5760343
2019/07/05
8670
PyQt5安装与使用
最近偶尔会写一些小工具提升项目组的效率,由于与物理设备交互的中间模块是基于 Python 的,用 Java 难以做到与之通信,为了方便大家日常使用,所以盯上了 Python GUI 工具,试了几个 GUI 框架,最终还是看上了 PyQt5 这个使用较多,文档相对较全的工具~
幻影龙王
2021/08/22
2K0
PyQt5安装与使用
PyQt QTabWidget
本篇主要介绍 QTabWidget的用法, 也会顺带介绍 QRadioButton 的分组, 以及 复合窗口部件的创建 。
用户6021899
2019/08/14
2.6K0
PyQT5事件和信号
TomatoCool
2023/07/30
2800
PyQT5事件和信号
PyQt中布局管理
布局管理是GUI编程中的一个重要方面。布局管理是一种如何在应用窗口上放置组件的一种方法。我们可以通过两种基础方式来管理布局。我们可以使用绝对定位和布局类。使用布局管理器管理布局是组织窗口小部件的首选方式
小飞侠xp
2018/12/24
1.8K0
相关推荐
【Python篇】PyQt5 超详细教程——由入门到精通(中篇一)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验