- PyQt5状态栏
- PyQt5菜单栏
- PyQt5工具栏
主要内容 #
完成效果 #
完成本节课程,能学会为应用窗口添加状态栏、菜单栏、工具栏、以及相应的命令和图标。
应用窗口及菜单展开:

收获 #
学习完本节内容,我们会知道QMainWindow提供了主窗口的功能,
使用它能创建一些简单的状态栏、工具栏和菜单栏,并添加命令动作和图标。
1.PyQt5状态栏 #
状态栏是用来显示应用的状态信息的组件。
状态栏是由QMainWindow创建的。
# 注意,以下包都要导入,后面内容会用到
import sys
from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
from PyQt5.QtGui import QIcon
class Example(QMainWindow): # 需要继承父类QMainWindow
def __init__(self):
super().__init__() # 调用父类 QMainWindow 的构造函数
self.initUI() # 界面绘制交给 InitUi 方法
def initUI(self):
# 调用QtGui.QMainWindow类的statusBar()方法,创建状态栏。
# 第一次调用会创建一个状态栏,而再次调用会返回一个状态栏对象。
# showMessage()方法在状态栏上显示一条信息。
self.statusBar().showMessage('Ready')
# 设置窗口的位置和大小,前两个参数表示离屏幕左上角的坐标,后两个参数表示窗口的大小
self.setGeometry(300, 300, 250, 150)
self.setWindowTitle('Statusbar') # 设置窗口的标题
self.show() # 显示窗口
app = QApplication(sys.argv) # 创建应用程序
ex = Example() # 创建窗口对象
sys.exit(app.exec_()) # 设置关闭窗口后结束进程
拓展练习:请尝试修改状态栏上显示的信息。
2.PyQt5菜单栏 #
菜单栏是GUI应用的常规组成部分,是位于各种菜单中的一组命令操作。
使用QAction添加命令动作,QAction是一个用于菜单栏、工具栏或自定义快捷键的抽象动作行为。
下面是创建菜单栏的简单示例,程序运行后,点击File>Exit, 即可退出应用。
exitAct = QAction('Exit', self) # 创建一个显示Exit标签的动作
# 当执行这个指定的动作时,就触发了一个事件。
# 而这个事件跟QApplication的quit()行为相关联,所以执行这个动作就能终止这个应用。
exitAct.triggered.connect(qApp.quit)
menubar = self.menuBar() # 创建一个菜单栏
fileMenu = menubar.addMenu('File') # 添加一个File菜单
fileMenu.addAction(exitAct) # 让File菜单与我们创建的退出应用动作相关联
将这部分代码,复制到前一节PyQt5代码框架中的initUI中即可。
拓展练习:请尝试修改菜单的名称。
3.PyQt5工具栏 #
菜单栏包含了所有的命令,工具栏就是常用的命令的集合。
工具栏是由文本按钮、图标或者其他小控件按钮组成的可移动面板,通常位于菜单栏下方;
每次单击工具栏中的按钮,此时都会触发actionTriggered信号。这个信号将关联QAction对象的引用发送到链接的槽函数上;
# 添加一个Exit动作,并使用exit.png作为图标
# 图片路径根据本地图片位置作更改
exitAct = QAction(QIcon('D:\\Python_Tips\\Dashima\\pics\\exit.png'), 'Exit', self)
exitAct.triggered.connect(qApp.quit) # 与菜单栏一样,动作关联到退出应用
self.toolbar = self.addToolBar('Exit') # 创建工具栏
self.toolbar.addAction(exitAct) # 将动作对象添加到工具栏
将这部分代码,复制到前一节PyQt5代码框架中的initUI中即可。
拓展练习:尝试替换工具栏的图标为你喜欢的图片。
小结 #
习题 #
- 习题1:尝试为菜单栏添加多添加几个菜单。
- 习题2:参照工具栏添加图标的方法,尝试为菜单栏的命令也添加图标。