菜单和工具栏
这个章节,我们会创建状态栏、菜单和工具栏。菜单是一组位于菜单栏的命令。工具栏是应用的一些常用工具按钮。状态栏显示一些状态信息,通常在应用的底部。
主窗口
QMainWindow
提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。
主窗口是下面这些窗口的合称,所以教程在最下方。
状态栏
状态栏是用来显示应用的状态信息的组件。
- #!/usr/bin/python3
- # -*- coding: utf-8 -*-
-
- """
- ZetCode PyQt5 tutorial
- This program creates a statusbar.
- Author: Jan Bodnar
- Website: zetcode.com
- Last edited: August 2017
- """
-
- import sys
- from PyQt5.QtWidgets import QMainWindow, QApplication
-
-
- class Example(QMainWindow):
-
- def __init__(self):
- super().__init__()
-
- self.initUI()
-
-
- def initUI(self):
-
- self.statusBar().showMessage('Ready')
-
- self.setGeometry(300, 300, 250, 150)
- self.setWindowTitle('Statusbar')
- self.show()
-
-
- if __name__ == '__main__':
-
- app = QApplication(sys.argv)
- ex = Example()
- sys.exit(app.exec_())
状态栏是由QMainWindow创建的。
self.statusBar().showMessage('Ready')
调用QtGui.QMainWindow
类的statusBar()
方法,创建状态栏。第一次调用创建一个状态栏,返回一个状态栏对象。showMessage()
方法在状态栏上显示一条信息。
程序预览:
菜单栏
菜单栏是非常常用的。是一组命令的集合(Mac OS下状态栏的显示不一样,为了得到最相似的外观,我们增加了一句menubar.setNativeMenuBar(False)
)。
- #!/usr/bin/python3
- # -*- coding: utf-8 -*-
-
- """
- ZetCode PyQt5 tutorial
- This program creates a menubar. The
- menubar has one menu with an exit action.
- Author: Jan Bodnar
- Website: zetcode.com
- Last edited: January 2017
- """
-
- import sys
- from PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplication
- from PyQt5.QtGui import QIcon
-
-
- class Example(QMainWindow):
-
- def __init__(self):
- super().__init__()
-
- self.initUI()
-
-
- def initUI(self):
-
- exitAct = QAction(QIcon('exit.png'), '&Exit', self)
- exitAct.setShortcut('Ctrl+Q')
- exitAct.setStatusTip('Exit application')
- exitAct.triggered.connect(qApp.quit)
-
- self.statusBar()
-
- menubar = self.menuBar()
- fileMenu = menubar.addMenu('&File')
- fileMenu.addAction(