PyQt5 基础知识(六):展示控件
3、 展示控件
3.1 QLabel
3.1.1 描述
提供了文本或图像的显示
- 可以展示普通文本、数字、富文本、图片和动画
但是没有提供用户交互功能,继承自QFrame
3.1.2 功能作用
3.1.2.1 基本功能
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: kun
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
w = QWidget()
w.resize(500, 500)
l = QLabel("标签哦", w) # 创建一个标签
"""
l.adjustSize() # 根据内容适应标签大小
l.setStyleSheet("background-color: skyblue;")
对齐
l.setAlignment(Qt.AlignLeft | Qt.AlignVCenter)
缩进和边距
l.setIndent(20)
l.setMargin(20)
文本格式
l.setTextFormat(Qt.TextFormat) # PlainText/ RichText/ AutoText/ MarkdownText
小伙伴
l.setBuddy(QWidget) # 参数是要关联的输入框,当点击快捷键是可以快速定位到相应的文本框上面
内容缩放
l.setScaledContents(True) # 设置图片内容的缩放,适应控件大小,仅限于图片
打开文本链接
l.setOpenExternalLinks(True) # 使得可以打开超链接
单词换行
l.setWordWrap(True) # 设置单词换行,同时也可以使用 \n 换行
"""
w.show()
sys.exit(app.exec_())
3.1.2.2 文本交互
# 设置交互模式
setTextInteractionFlags(Qt.TextInteractionFlags)
textInteractionFlags()
# 选中文本
setSelection(int start, int length)
hasSelection()
selectedText()
selectionStart() # 返回开始位置的索引
Qt.TextInteractionFlags:
Qt.NoTextInteraction:不可能进行交互Qt.TextSelectableByMouse:可以使用鼠标选择文本并使用上下文菜单或标准键盘快捷键将其复制到剪切板Qt.TextSelectionByKeyboard:可以使用键盘上的光标键选择文本,显示文本光标Qt.LinksAccessibleByMouse:可以使用鼠标突出显示和激活链接Qt.LinksAccessibleByKeyborad:可以使用选项卡聚焦链接并使用enter激活Qt.TextEditable:改文字完全可以编辑Qt.TextEditiorInteraction:文本编辑器的默认值;TextSelectableByMouse | TextSelectionByKeyboard | TextEditableQt.TextBrowserInteraction:文本浏览器的默认值;TextSelectableByMouse | TextSelectionByKeyboard | LinksAccessibleByMouse | LinksAccessibleByKeyborad
3.1.2.3 内容操作
3.1.2.3.1 文本字符串
text()
setText(QString) # 里面可以添加富文本
3.1.2.3.2 数值数据
setNum(int / float) # 设置数值
3.1.2.3.3 图形图像
setPicture(QPicture) # 主要用于绘画设备
setPixmap(QPixmap)
3.1.2.3.4 动图
setMovie(QMovie) # 注意不是添加视频,而是添加一个动图
movie()
此类用于显示没有声音的简单动画
常用操作:
setScaledSize(QSize)
setPaused(bool)
setSpeed(int) # setSpeed(200) 两倍速播放
start() # 开始播放
3.1.2.3.5 清空
clear() # 清空所有内容
3.1.3 信号
# 超链接有关的信号
linkActivated(link_str)
linkHovered(link_str)
3.2 QLCDNumber
3.2.1 描述
展示LCD样式的数字,它可以展示几乎任何大小的数字;它可以显示十进制、十六进制、八进制或二进制
继承自QFrame
3.2.2 功能作用
3.2.2.1 基本使用
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: kun
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
w = QWidget()
w.resize(500, 500)
ql = QLCDNumber(w) # 构造函数,还可以传入一个数字,限制要展示的内容的位数
ql.resize(100, 50)
ql.display("12345") # 设置展示的内容,里面可以传入字符串,浮点数据,整型数据
print(ql.value()) # 获取ql里面的值,返回浮点类型数据
ql.setDigitCount(5) # 限制5位数字
w.show()
sys.exit(app.exec_())
3.2.2.2 模式设置
setMode(QLCDNumber.Mode)
mode()
# 快速设置方法
setHexMode() # 十六进制
setDecMode() # 十进制
setOctMode() # 八进制
setBinMode() # 二进制
3.2.2.3 溢出判定
checkOverflower(float/ int) # 判断数据是否溢出,如果溢出会发送一个溢出信号
3.2.2.4 分段样式
setSegmentStyle(QLCDNumber.SegmentStyle)
segmentStyle()
QLCDNumber.SegmentStyle:
QLCDNumber.Outline:生成填充了背景颜色的凸起部分QLCDNumber.Filled:默认值,生成填充前景色的凸起部分QLCDNumber.Flat:生成填充前景色的平坦段
3.2.3 信号
overflow() # 当数据溢出时,发送信号
3.3 QProgressBar
3.3.1 描述
提供一个水平或垂直进度条;进度条用于向用户提供操作进度提示,并向他们保证应用程序仍在运行
继承自 QWidget
3.3.2 功能作用
3.3.2.1 基本功能
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: kun
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
w = QWidget()
w.resize(500, 500)
qp = QProgressBar(w) # 创建对象
qp.setMaximum(100)
qp.setMinimum(0)
# qp.setRange(0, 100) # 设置取值范围,最大值和最小值,当最大值和最小值相等时,处于繁忙状态
qp.setValue(20) # 设置当前的值
# qp.reset() # 重置进度条
print(qp.value()) # 获取当前进度条的值
# 设置进度条的方向
# pq.setOrientation(Qt.Orientation)
# 倒立外观
# pq.setInvertedAppearance(bool)
w.show()
sys.exit(app.exec_())
3.3.2.2 格式设置
setFormat(str) # %p 为百分比;%v 为当前值;%m 为总值
# 如 setFormat("已下载%p %")
resetFormat() # 重置格式设置
setAlignment(Union[Qt.Alignment, Qt.AliginmentFlag]) # 格式化字符对齐方式
3.3.2.3 文本操作
setTextVisible(bool) # 标签是否可见
text() # 获取标签文本内容
setTextDirection(QProcessBar.Direction) # 控制文本的排列方向
3.3.3 信号
valueChanged(int)
3.4 QErrorMessaage
3.4.1 描述
错误消息小部件由文本标签和复选框组成;该复选框允许用户控制将来是否再次显示相同的错误消息
继承自QDialog
3.4.2 功能作用
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: kun
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
w = QWidget()
w.resize(500, 500)
qb = QErrorMessage(w) # 创建对象
qb.setWindowTitle("错误提示") # 修改窗口标题
qb.showMessage("你确定要继续操作吗?") # 如果设置多个,会一次一次展示出来
qb.exec() # 展示对话框
QErrorMessage.qtHandler() # 通过静态方法,展示级别信息,使用此放你发后,后溪所有的返回均会使用对话框显示
qDebug("xxx") # 调试信息
qWarning("eee") # 警告信息
w.show()
sys.exit(app.exec_())
3.4.3 信号
继承父类
3.5 QProgressDialog
3.5.1 描述
提供一个缓慢的操作进度反馈,进度对话框用于向用户指示操作符花费多长时间,并演示应用程序尚未冻结;它还可以为用户提供中止操作的机会
继承自 QDialog
3.5.2 功能作用
3.5.2.1 基础
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
# @author: kun
from PyQt5.Qt import *
import sys
app = QApplication(sys.argv)
w = QWidget()
w.resize(500, 500)
qpd = QProgressDialog("进度条", "确定", 0, 100, w) # 0 为进度条的最小值
# 自动选择
qpd.setAutoClose(False) # 设置对话框完成后是否关闭
qpd.setAutoReset(False) # 进度条满后是否重置信息
# 弹出:最小展示时长——展示之前的等待时间:如果在等待时间内,进度条满了,就不会弹出;否则弹出
# qpd.setMinimumDuration(int) # 默认为 4 秒
# 或者直接使用 open(func_) 弹出
w.show()
sys.exit(app.exec_())
3.5.2.2 界面内容编辑
# 对话框标题
setWindowTitle(str)
# 标签文本
setLabelText(str)
# 取消按钮文本
setCancelButtonText(str)
# 子控件设置
setBar(QProgressBar)
setCancelButton(QPushButton)
setLabel(QLabel)
3.5.2.3 数据处理
# 最大值和最小值
setMinimum(int)
setMaximum(int)
setRange(int min, int max)
# 设置当前的进度
setValue(int)
# 是否取消
cancel() # 取消进度条
wasCanceled()
3.5.3 信号
canceled()
3.6 QMessageBox
3.6.1 描述
用于通知用户或请求用户的提问和接收应答的一个模态窗口;无论其展示方式是什么,都为模态窗口
对话框的构成:

继承自 QDialog
3.6.2 功能作用
3.6.2.1 构造函数
QMessageBox(parent: QWidget = None)
QMessageBox(QMessageBox.Icon, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.NoButton, parent: QWidget = None, flags: Union[Qt.WindowFlags, Qt.WindowType] = Qt.Dialog|Qt.MSWindowsFixedSizeDialogHint) # str 可以为富文本
3.6.2.2 内容展示
# 对话框标题
setWindowTitle(str)
# 标准图标
seticon(QMessageBox.Icon) # 参数请到源码查看
# 自定义图标
setIconPixmap(QPixmap)
# 主要标题
setText(str)
setTextFormat(Qt.TextFormat) # 设置文本的格式,富文本、普通文本或者自动识别
# 提示信息
setInformativeText(str)
# 详细文本
setDetailedText(str)
# 复选框
setCheckBox(QCheckBox)
3.6.2.3 按钮
添加移除按钮
addButton(QabstractButton, QMessageBoxButtonRole)
addButton(str, QMessageBox.ButtonRole)
addButton(QMessageBox.StandardButton)
removeButton(QAbstractButton)
设置标准按钮
setStandardButtons(Union[QMessageBox.StandardButtons, QMessageBox.StandardBox.StandardButton])
默认按钮
setDefaultButton(QPushButton)
setDefaultButton(QMessageBox.StandardButton)
退出按钮
setEscapeButton(QAbstractButton)
setEscapeButton(QMessageBox.StandardButton)
# 按 Esc 时激活按钮
获取按钮
buttons()
button(QMessageBox.StandardButton)
按钮角色
buttonRole(QAbstractButton)
被点击的按钮
clickedButton()
参数请到源码查看
3.6.2.4 文本交互
setTextInteractionFlags(Qt.TextInteractionFlag)
textInteractionFlags()
相关参数和上文的文本交互类似:【[点我](#3.1.2.2 文本交互)】,其仅仅控制主标题
3.6.2.5 静态方法
# 关于表
about(QWidget, str, str)
# 关于 Qt 的对话框
aboutQt(QWidget, title)
# 危险按钮
critical(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
# 展示相关信息
information(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
# 询问按钮
question(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.StandardButtons(QMessageBox.Yes|QMessageBox.No), defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
# 警告按钮
warning(QWidget, str, str, buttons: Union[QMessageBox.StandardButtons, QMessageBox.StandardButton] = QMessageBox.Ok, defaultButton: QMessageBox.StandardButton = QMessageBox.NoButton) -> QMessageBox.StandardButton
静态方法,快速展出对话框
3.6.3 信号
buttonClicked(QAbstractButton)
PyQt5 基础知识(六):展示控件的更多相关文章
- Android学习之基础知识五—ListView控件(最常用和最难用的控件)
ListView控件允许用户通过上下滑动来将屏幕外的数据拉到屏幕内,把屏幕内的数据拉到屏幕外. 一.ListView的简单用法第一步:先创建一个ListViewTest项目,在activity_mia ...
- qt 5 基础知识 2(控件篇)
QVBoxLayout *lay = new QVBoxLayout(this); // 创建一个竖直的盒子 lebel 篇 lay->addWidget(label = new QLabel( ...
- Android微信九宫格图片展示控件
版权声明:本文为xing_star原创文章,转载请注明出处! 本文同步自http://javaexception.com/archives/214 Android微信九宫格图片展示控件 半年前,公司产 ...
- winform快速开发平台 -> 基础组件之分页控件
一个项目控件主要由及部分的常用组件,当然本次介绍的是通用分页控件. 处理思想:我们在处理分页过程中主要是针对数据库操作. 一般情况主要是传递一些开始位置,当前页数,和数据总页数以及相关关联的业务逻辑. ...
- 重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试
原文:重新想象 Windows 8 Store Apps (16) - 控件基础: 依赖属性, 附加属性, 控件的继承关系, 路由事件和命中测试 [源码下载] 重新想象 Windows 8 Store ...
- HTML5的video虽然可用controls来展示控件
HTML5的video虽然可用controls来展示控件,并进行控制播放暂停等,但是不同的浏览器显示的效果可能不一样,所以很多时候我们需要使用Dom来进行自定义的一些操作和控制.下面是一个小例子. 当 ...
- python基础知识六 文件的基本操作+菜中菜
基础知识六 文件操作 open():打开 file:文件的位置(路径) mode:操作文件模式 encoding:文件编码方式 f :文件句柄 f = open("1.t ...
- Python基础知识(六)------小数据池,集合,深浅拷贝
Python基础知识(六)------小数据池,集合,深浅拷贝 一丶小数据池 什么是小数据池: 小数据池就是python中一种提高效率的方式,固定数据类型使用同一个内存地址 代码块 : 一个文 ...
- jquery分页展示控件:kkpager
kkpager v1.2 js分页展示控件,传入简单参数就能使用的分页效果控件 准备工作,引入js.css <script type="text/javascript" sr ...
随机推荐
- 2022年官网下安装MongoDB最全版与官网查阅方法(5.0.6)
一.下载安装 1.百度搜索,找到官网,或直接访问:https://www.mongodb.com/ 2.寻找下载位置,双击下载. 3.找到本地位置,双击执行,进入欢迎界面,选择next. 4.勾选协议 ...
- Linux 中如何使用 Htop 监控工具?【网络安全】
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 一.Htop 界面展示 "Htop 是一个用于 Linux/Unix 系统的交互式实时进程监控应用程序,也是 top 命令的替代品,它是所 ...
- django之分页,纯python代码
Django中分页 py文件代码 """ 自定义分页组件 可以返回分页的数据和分页的HTML代码 """ from django.http ...
- 罗杨老师带你了解谷歌编程之夏(GSoC)活动全流程
罗杨老师带你了解谷歌编程之夏(GSoC)活动全流程 为了帮助同学们更好地参与开源,Casbin 决定做一期访谈节目,由小编作为一名开源初学者,用访谈的形式与北京大学工学博士.Casbin作者.Npca ...
- BZOJ3159: 决战(FHQ Treap)
传送门: 解题思路: 算是补坑了,这题除了Invert以外就可以树剖线段树解决了. 考虑Invert操作,延续先前树链剖分的做法,考虑先前算法的瓶颈. 最暴力的方法是暴力交换权值,然而这种方法忽略了当 ...
- css--BFC是什么,有什么用,怎么用?
前言 作为前端开发人员或者学生,你一定知道BFC这个关键词,但是你是否具体了解过什么是BFC?BFC有什么用?BFC怎么用些问题呢?本文就来总结一下相关的知识点,希望对阅读到的小伙伴在面试.学习.开发 ...
- 一文了解MySQL的Buffer Pool
摘要:Innodb 存储引擎设计了一个缓冲池(Buffer Pool),来提高数据库的读写性能. 本文分享自华为云社区<MySQL 的 Buffer Pool,终于被我搞懂了>,作者:小林 ...
- 解释WEB 模块?
Spring的WEB模块是构建在application context 模块基础之上,提供一个适合web应用的上下文.这个模块也包括支持多种面向web的任务,如透明地处理多个文件上传请求和程序级请求参 ...
- BIO、NIO、AIO 有什么区别?
BIO:Block IO 同步阻塞式 IO,就是我们平常使用的传统 IO,它的特点是模式简单使用方便,并发处理能力低.NIO:New IO 同步非阻塞 IO,是传统 IO 的升级,客户端和服务器端通过 ...
- 简述 Mybatis 的插件运行原理,以及如何编写一个插件。
Mybatis 仅可以编写针对 ParameterHandler.ResultSetHandler. StatementHandler.Executor 这 4 种接口的插件,Mybatis 使用 J ...