跳至正文
View Categories

1 min read

    主要内容 #

  1. PyQt5状态栏
  2. PyQt5菜单栏
  3. 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. 习题1:尝试为菜单栏添加多添加几个菜单。
    2. 习题2:参照工具栏添加图标的方法,尝试为菜单栏的命令也添加图标。