一、概要
主要使用了QMainWindow窗口的菜单栏和事件的应用
运行截图:
二、源代码:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import sys
from PyQt5.QtGui import QIcon
from PyQt5.QtWidgets import QMainWindow, QApplication, QAction, qApp, QMenu
class Example(QMainWindow):
def __init__(self):
super().__init__()
self.initUI()
#默认设置为选中状态
def toggleMenu(self, state):
if state:
self.statusbar.show()
else:
self.statusbar.hide()
def initUI(self):
# 创建一个菜单栏
menubar = self.menuBar()
#创建两个子菜单,一个在File菜单下面,一个在File的Import下面
impMenu = QMenu('Import', self)
impAct = QAction('Import mail', self)
impMenu.addAction(impAct)
# 添加菜单
newAct = QAction('New', self)
fileMenu = menubar.addMenu('File')
fileMenu.addMenu(impMenu)
#创建了一个行为菜单。这个行为/动作能切换状态栏显示或者隐藏
viewMenu = menubar.addMenu('View')
viewStatAct = QAction('View statusbar', self, checkable=True)
viewStatAct.setStatusTip('View statusbar')
# 用checkable选项创建一个能选中的菜单
viewStatAct.setChecked(True)
viewStatAct.triggered.connect(self.toggleMenu)
viewMenu.addAction(viewStatAct)
# 添加事件
exitAction = QAction(QIcon('E:/newRunning/projectPython/pyqt5-test/icon.png'), '&Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit application')
exitAction.triggered.connect(qApp.quit)
#使用addAction()添加一个动作
fileMenu.addAction(newAct)
fileMenu.addAction(exitAction)
fileMenu = menubar.addMenu('Edit')
self.statusBar().showMessage('Ready')
self.setGeometry(300, 300, 250, 200)
self.setWindowTitle('Menubar&Statusbar')
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = Example()
sys.exit(app.exec_())