zoukankan      html  css  js  c++  java
  • 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_())

     运行效果:

  • 相关阅读:
    LeetCode111 二叉树的最小深度
    LeetCode104 二叉树的最大深度
    LeetCode102 二叉树的层次遍历
    LeetCode94 二叉树的中序遍历
    LeetCode145 二叉树的后序遍历
    LeetCode144 二叉树的前序遍历
    计算机考研真题 最大序列和
    计算机考研真题 对称矩阵
    计算机考研真题 点菜问题
    计算机考研真题 数字反转
  • 原文地址:https://www.cnblogs.com/chenhaiming/p/9947446.html
Copyright © 2011-2022 走看看