美文网首页
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