• 菜单栏、工具栏与状态栏—QMenuBar


    在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。

    QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。每个QMenu对象都可以包含一个或多个QAction对象或级联的QMenu对象。

    要创建一个弹出菜单,PyQt API提供了createPopupMenu()函数;menuBar()函数用于返回主窗口的QMenuBar对象;addMenu()函数可以将菜单添加到菜单栏中;通过addAction()函数可以在菜单中进行添加操作。

    在设计菜单系统时使用的一些方法:
      menuBar()    返回主窗口的QMenuBar对象

      addMenu()    在菜单栏中添加一个新的QMenu对象

      addAction()      向QMenu小控件中添加一个操作按钮,其中包含文本或图标

      setEnabled()    将操作按钮状态设置为启用/禁用

      addSeperator()  在菜单中添加一条分隔线

      clear()      删除菜单/菜单栏的内容

      setShortcut()   将快捷键关联到操作按钮

      setText()        设置菜单项的文本

      setTitle()     设置QMenu小控件的标题

      text()       返回与QAction对象关联的文本

      title()       返回QMenu小控件的标题

    单击任何QAction按钮时,QMenu对象都会发射triggered信号。

    案例34  QMebuBarr的使用

    import sys
    from PyQt5.QtWidgets import QMainWindow, QApplication, QHBoxLayout, QAction
    
    
    class MenuBarDemo(QMainWindow):
        def __init__(self, parent=None):
            super().__init__(parent)
    
            layout = QHBoxLayout()
            bar = self.menuBar()
            file = bar.addMenu("File")
            file.addAction("New")
    
            save = QAction("Save", self)
            save.setShortcut("Ctrl+S")
            file.addAction(save)
            edit = file.addMenu("Edit")
            edit.addAction("Copy")
            edit.addAction("Paste")
            quit = QAction("Quit", self)
            file.addAction(quit)
    
            file.triggered[QAction].connect(self.processtrigger)
            self.setLayout(layout)
            self.setWindowTitle("Menu Demo")
    
        def processtrigger(self, q):
            print(q.text() + " is triggered")
    
    
    if __name__ == "__main__":
        app = QApplication(sys.argv)
        demo = MenuBarDemo()
        demo.show()
        sys.exit(app.exec_())
  • 相关阅读:
    模板-树链剖分
    bzoj2523 聪明的学生
    P1220 关路灯
    BZOJ3572 [Hnoi2014]世界树
    BZOJ4013 [HNOI2015]实验比较
    BZOJ4012 [HNOI2015]开店
    BZOJ4011 [HNOI2015]落忆枫音
    BZOJ4009 [HNOI2015]接水果
    BZOJ4010 [HNOI2015]菜肴制作
    BZOJ4008 [HNOI2015]亚瑟王
  • 原文地址:https://www.cnblogs.com/lynsha/p/13441244.html
Copyright © 2020-2023  润新知