要使用menu,从PyQt5.QtWidgets 导入 QMainWindow,如果要给menu绑定事件,还需要导入:QAction。
QAction构造函数如下:
"""
QAction(parent: QObject = None)
QAction(str, parent: QObject = None)
QAction(QIcon, str, parent: QObject = None)
"""
QAction is an abstraction for actions performed with a menubar, toolbar, or with a custom keyboard shortcut.
代码:
# coding='utf-8'
from PyQt5.QtWidgets import QMainWindow, QApplication,\
QAction, qApp
from PyQt5.QtGui import QIcon
import sys
class Gui(QMainWindow):
def __init__(self):
super().__init__()
self.start()
def start(self):
# 构造函数: QAction(QIcon, str, parent: QObject = None)
exit_action = QAction(QIcon('./图片素材/退出/7.png'), '&退出', self)
# 给这个菜单添加快捷键来激活使用这个菜单的功能
exit_action.setShortcut('ctrl+W')
# 当把鼠标放在这个菜单上时左下角显示的信息,必须要触发事件后才会显示
exit_action.setStatusTip('退出应用')
# connect接受参数是回调函数,或者Qt slot,表示事件触发后做的事
exit_action.triggered.connect(qApp.quit)
# 创建状态bar,必须要创建这个后才会在左下角显示状态信息
self.statusBar()
# 创建菜单,此时还没有任何功能,只是个空菜单
menu_bar = self.menuBar()
# 给菜单添加第一个功能,名字叫菜单
file_menu = menu_bar.addMenu('&菜单')
# 让鼠标点击刚刚创建的菜单项目会触发exit_action事件
# 如果不加触发事件,则点击菜单没有任何反应
file_menu.addAction(exit_action)
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('简单的菜单测试')
self.show()
win = QApplication(sys.argv)
gui = Gui()
sys.exit(win.exec_())
运行结果:
image.png
网友评论