• PyQt5:菜单,QMenuBar对象


    菜单:

      调用QMainWindow类的menuBar方法可以获得主窗口的QMenuBar对象,该对象表示主窗口的菜单栏,通过QMenuBar对象的addMenu方法可以在菜单栏中添加菜单项。然后通过addAction方法添加子菜单项。

      创建一个QMenuBar对象的方法为:fileMenu = menubar.addMenu('文件')

      创建一个不带子菜单项的菜单项的方法为QAction方法:newAct = PQW.QAction('新建',self)

      创建一个带子菜单项的菜单项的方法为QMenu:impMenu = PQW.QMenu('导入',self)

      添加一个带子菜单项的方法为addMenu():fileMenu.addMenu(impMenu)  #把“导入”这个子菜单项目添加到菜单栏的“文件”菜单项中。

      添加一个不带子菜单项的方法为addMenu():fileMenu.addAction(newAct)  #把“新建”这个子菜单项目添加到菜单栏的“文件”菜单项中。

    实例代码:

    import sys
    import PyQt5.QtWidgets as PQW
    import PyQt5.QtGui as PQG
    import PyQt5.QtCore as PQC
    
    class Menu(PQW.QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            # 新建一个菜单栏对象
            self.lbl = PQW.QLabel('print to here',self)
            self.lbl.move(50,150)
            menubar = self.menuBar()
            # 添加“文件”菜单项
            fileMenu = menubar.addMenu('文件')
            # 添加“新建”菜单项
            newAct = PQW.QAction('新建',self)
            # 添加“导入”菜单项 (带子菜单项)
            impMenu = PQW.QMenu('导入',self)
            impAct1 = PQW.QAction('从pdf导入',self)
            impAct2 = PQW.QAction('从word导入', self)
            # 为菜单添加单击处理时间
            fileMenu.addAction(newAct)
            fileMenu.addMenu(impMenu)
            impMenu.addAction(impAct1)
            impMenu.addAction(impAct2)
            impAct1.triggered.connect(lambda :self.actionHandler(1))
            impAct2.triggered.connect(lambda :self.actionHandler(2))
    
            self.setGeometry(300,300,300,200)
            self.setWindowTitle('菜单')
            self.show()
    
        def actionHandler(self,n):
            s = '从pdf文件导入'
            print(n)
            self.lbl.setText(s)
            self.lbl.adjustSize()
    
    if __name__ == '__main__':
        app = PQW.QApplication(sys.argv)
        ex = Menu()
        sys.exit(app.exec_())

     运行效果:

  • 相关阅读:
    C语言数据类型取值范围
    C语言的概述--学习c的第二天
    开始学习c语言
    Comet 反Ajax: jQuery与PHP实现Ajax长轮询
    jquery的toFixed方法的正确使用
    JavaScript 正则表达式
    JavaScript中原型链存在的问题解析
    vue编程式导航
    vue 动态组件,传递参数
    JavaScript如何封装插件
  • 原文地址:https://www.cnblogs.com/chenhaiming/p/9947446.html
Copyright © 2020-2023  润新知