- 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:参照工具栏添加图标的方法,尝试为菜单栏的命令也添加图标。