Python GUI 编程 | QWidget 窗口控件详解 — 控件信息提示

🌟想系统化学习 GUI 编程?看看这个:[Python GUI 编程] PySide & PyQt - 学习手册-CSDN博客

0x01:QWidget 控件信息提示 — 状态提示

0x0101:状态栏基础 — QMainWindow

”状态提示“ 需要展示在状态栏上,但我们之前介绍的 QWidget 是一个纯粹的画布,其上根本没有状态栏这个控件,所以在介绍 ”状态提示“ 之前,我们需要导入一个新的类,即 QMainWindow,QMainWindow 本质只是对 QWidget 的一个封装:

如上,可以发现,QMainWindow 只是在 QWidget 的基础上给其添加了标题栏与状态栏而已。

1. 状态栏 — 懒加载?

QMainWindow 的状态栏采用了 ”懒加载“ 模式,即只有在调用它时,它才会展示,看下面这两个对比示例,第一个是未使用状态栏的,第二个是手动加载状态栏的:

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
​
# window.statusBar()
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
​
window.statusBar()
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

0x0102:setStatusTip(str) & statusTip()

QWidget 的 setStatusTip(str) 可以设置状态栏显示的内容,当我们鼠标悬停在指定控件上时,状态栏就会显示对应的内容;statusTip() 则可以获取状态栏中的内容:

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
window.statusBar() # 启用状态栏
​
window.setStatusTip("Welcom To PyQt5")
print("状态栏中的内容为: ", window.statusTip())
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

0x02:QWidget 控件消息提示 — 工具提示

0x0201:setToolTip(str) & toolTip()

QWidget 的 setToolTip(str) 能在我们鼠标悬停在指定控件上时,在控件的旁边展示提示内容;toolTip() 则能获取对应控件的提示内容:

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
window.resize(600, 400)
​
label = QLabel(window)
label.setText("Hello PyQt5")
label.resize(200, 100)
​
label.setToolTip("这是一个标签")
print("Label 的提示信息:", label.toolTip())
​
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

0x0202:setToolTipDuration(msec) & toolTipDuration()

setToolTipDuration(msec)能设置当鼠标悬停时,提示信息展示的时长(这个感觉默认的就挺好); toolTipDuration() 则能获得这个时长:

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
window.resize(600, 400)
​
label = QLabel(window)
label.setText("Hello PyQt5")
label.resize(200, 100)
​
label.setToolTip("这是一个标签")
print("Label 的提示信息:", label.toolTip())
​
label.setToolTipDuration(1000) # 设置提示信息的持续时间为1秒
print("Label 的提示信息持续时间:", label.toolTipDuration())
​
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

0x03:QWidget 控件消息提示 — 作用提示

0x0301:作用提示基础 — 添加 ”这是啥“ 按钮

”作用提示“,即显示某个控件的功能,或者介绍。当然,更通俗一点讲,就是 ”这是啥?“。要想使用该功能,我们需要给窗口加一个切换到 ”这是啥“ 模式的按钮,通过设置 Flag 就可以:

关联基础知识 🚀:QWidget 窗口控件详解 — 顶层窗口操作

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
window.resize(600, 400)
window.setWindowFlags(Qt.WindowContextHelpButtonHint) # 添加帮助按钮
​
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

如上,可以看到,当设置了 Qt.WindowContexHelpButtonHint 后,就会多一个问号的标志,点击这个问好就可以切换到 ”这是啥“ 模式。

0x0302:setWhatsThis(str) & whatsThis()

QWidget 的 setWhatsThis(str) 能够设置 ”这是啥“ 模式下,鼠标点击控件时的内容;whatsThis() 函数则能获取设置的对应内容(注意,前提是切换到 ”这是啥模式“):

import sys
from PyQt5.Qt import *
​
# 1. 创建一个应用程序对象
app = QApplication(sys.argv)
# 2. 创建窗口控件
window = QMainWindow()
window.resize(600, 400)
window.setWindowFlags(Qt.WindowContextHelpButtonHint) # 添加帮助按钮
​
label = QLabel(window)
label.setText("Hello World")
label.resize(200, 200)
label.setWhatsThis("这是啥?这是一个标签")
print("label ”这是啥模式“ 内容: ", label.whatsThis())
​
# 3. 显示窗口
window.show()
# 4. 应用程序的执行,进入到消息循环
sys.exit(app.exec_())

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Blue17 :: Hack3rX

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值