美文网首页
PyQt5 Submenu 子菜单的使用

PyQt5 Submenu 子菜单的使用

作者: _Mirage | 来源:发表于2020-04-01 22:23 被阅读0次

A submenu is a menu located inside another menu.
子菜单是放置在菜单下的菜单项。
子菜单要从 PyQt5.QtWidgets导入QMenu使用, QAcion专门用来给菜单等添加事件。
主菜单的生成只需要调用QMainWindow的menuBar方法既可自动生成主菜单,注意生成后还没有表现出来,必须要给主菜单先addMenu,添加菜单后才能显示。

代码:

# coding='utf-8'

from PyQt5.QtWidgets import QMainWindow, QApplication, QMenu, QAction
from PyQt5.QtGui import QIcon
import sys


class Gui(QMainWindow):
    def __init__(self):
        super().__init__()
        self.start()

    def start(self):
        # 创建MainWindow菜单控件对象,(创建了就自动放置上去),\
        # 但是如果不添加菜单的话还是没用
        menu_bar = self.menuBar()
        # 给上面创建的菜单组件添加一个菜单(此时才真的有菜单被绑定上去)
        # 但是如果不给这个添加的菜单绑定任何事件,点击了没用,\
        # 必须要给这个菜单添加QAction事件点击了才会有用
        # addMenu后返回的是菜单对象,代表你新创建的菜单
        file_menu = menu_bar.addMenu('文件')

        # 创建菜单下面的子菜单
        # 构造函数: QMenu(str, parent: QWidget = None)
        imp_menu = QMenu('导入', self)
        # 给菜单的点击绑定QAction事件
        # 构造函数: QAction(str, parent: QObject = None)
        imp_act = QAction('导入邮件', self)
        imp_menu.addAction(imp_act)

        # 给主菜单添加一个QAction,就是点击了主菜单后出现的事件,如果点击会触发
        new_act = QAction('New', self)
        file_menu.addAction(new_act)
        file_menu.addMenu(imp_menu)
        '''添加菜单和添加事件最大的区别是:添加的菜单下还可以添加菜单/事件
            而添加的事件下面不能再添加菜单或事件,只能点击触发
        '''

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Sub Menu')
        self.show()


win = QApplication(sys.argv)
gui = Gui()
sys.exit(win.exec_())
运行结果: image.png

相关文章

网友评论

      本文标题:PyQt5 Submenu 子菜单的使用

      本文链接:https://www.haomeiwen.com/subject/brvouhtx.html