zoukankan      html  css  js  c++  java
  • [Python自学] PyQT5-菜单栏、工具栏、状态栏

    一、菜单栏

    手工使用代码创建菜单栏主要有以下步骤:

    1)创建一个获取窗口的menuBar实例(这个实例是MainWindow的成员属性)

    2)在menuBar中添加Menu

    3)在Menu中添加Actions

    4)为Actions绑定triggered事件

    菜单栏Demo:

    import sys
    
    # 导入QT,其中包含一些常量,例如颜色等
    from PyQt5.QtCore import Qt
    # 导入常用组件
    from PyQt5.QtWidgets import QApplication, QMainWindow
    from PyQt5.QtWidgets import QAction
    # 使用调色板等
    from PyQt5.QtGui import QIcon
    
    
    class DemoWin(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.resize(400, 250)
            # 获取QMainWindow的MenuBar对象
            bar = self.menuBar()
            # 在menuBar上添加文件菜单
            file = bar.addMenu("文件")
            new = QAction("新建 (&N)", self)
            open = QAction("打开 (&O)", self)
            save = QAction("保存", self)
            # 为一个Action设置快捷键
            save.setShortcut("Ctrl + S")
            saveAt = QAction("另存为", self)
            file.addAction(new)
            file.addAction(open)
            file.addAction(save)
            file.addAction(saveAt)
            # 为文件-->保存绑定槽函数
            save.triggered.connect(self.saveProcess)
    
            # 在menuBar上添加编辑菜单
            edit = bar.addMenu("编辑")
            edit.addAction("复制")
            edit.addAction("剪切")
            edit.addAction("粘贴")
            # 在编辑菜单中添加一个其他操作菜单,其中包含多个QAction
            others = edit.addMenu("其他操作")
            others.addAction("A操作")
            others.addAction("B操作")
            others.addAction("B操作")
    
            quit = QAction("退出", self)
            # 文件-->退出,绑定窗口的close槽
            quit.triggered.connect(self.close)
            file.addAction(quit)
    
            # 添加窗口标题
            self.setWindowTitle("MenuDemo")
    
        def saveProcess(self):
            print("保存")
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        app.setWindowIcon(QIcon("images/icon.ico"))
        # 创建一个主窗口
        mainWin = DemoWin()
        # 显示
        mainWin.show()
        # 主循环
        sys.exit(app.exec_())

    实现效果:

    二、工具栏

    要使用工具栏,需要以下步骤:

    1)在QMainWindow中添加一个工具栏 addToolBar()

    2)在toolBar中添加Action(Action可以指定图标和名称,默认只显示图标,名称以tip的方式显示)

    import sys
    
    # 导入QT,其中包含一些常量,例如颜色等
    from PyQt5.QtCore import Qt
    # 导入常用组件
    from PyQt5.QtWidgets import QApplication, QMainWindow
    from PyQt5.QtWidgets import QAction, QMenu, QActionGroup
    # 使用调色板等
    from PyQt5.QtGui import QIcon
    
    
    class DemoWin(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.resize(400, 250)
    
            # 创建一个toolBar,用于放置文件操作
            fileBar = self.addToolBar("File")
            new = QAction(QIcon('./images/new.jpg'), "新建", self)  # 指定了图标默认显示图标
            fileBar.addAction(new)
            open = QAction(QIcon('./images/open.jpg'), "打开", self)
            fileBar.addAction(open)
            fileBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)  # 设置名称显示在图标下面(默认本来是只显示图标)
    
            fileBar.actionTriggered.connect(self.toolbtnpressed)
    
            # 创建另一个toolbar,用于放置编辑操作
            editBar = self.addToolBar("Edit")
            copy = QAction("复制", self)  # 没有指定图标,默认显示名称
            editBar.addAction(copy)
            paste = QAction("粘贴", self)
            editBar.addAction(paste)# 添加窗口标题
            self.setWindowTitle("ToolBarDemo")
    
        def toolbtnpressed(self, a):
            print("按下的ToolBar按钮是", a.text())  # 打印点击的按钮名称
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        app.setWindowIcon(QIcon("images/icon.ico"))
        # 创建一个主窗口
        mainWin = DemoWin()
        # 显示
        mainWin.show()
        # 主循环
        sys.exit(app.exec_())

    实现效果:

    三、状态栏

    状态栏存在于窗口的最下方,用于显示信息。

    Demo:

    import sys
    
    # 导入QT,其中包含一些常量,例如颜色等
    from PyQt5.QtCore import Qt
    # 导入常用组件
    from PyQt5.QtWidgets import QApplication, QMainWindow
    from PyQt5.QtWidgets import QAction, QStatusBar
    # 使用调色板等
    from PyQt5.QtGui import QIcon
    
    
    class DemoWin(QMainWindow):
        def __init__(self):
            super().__init__()
            self.initUI()
    
        def initUI(self):
            self.resize(400, 250)
            fileBar = self.addToolBar("File")
            new = QAction(QIcon('./images/new.jpg'), "新建", self)
            fileBar.addAction(new)
            open = QAction(QIcon('./images/open.jpg'), "打开", self)
            fileBar.addAction(open)
            fileBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
            fileBar.actionTriggered.connect(self.toolbtnpressed)
            editBar = self.addToolBar("Edit")
            copy = QAction("复制", self)
            editBar.addAction(copy)
            paste = QAction("粘贴", self)
            editBar.addAction(paste)
    
            # 定义一个状态栏,并添加到窗口上
            self.statusBar = QStatusBar()
            self.setStatusBar(self.statusBar)
    
            # 添加窗口标题
            self.setWindowTitle("StatusBarDemo")
    
        def toolbtnpressed(self, a):
            self.statusBar.showMessage(a.text() + "按钮被点击了.", 2000)  # 2000表示显示2s消失
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        app.setWindowIcon(QIcon("images/icon.ico"))
        # 创建一个主窗口
        mainWin = DemoWin()
        # 显示
        mainWin.show()
        # 主循环
        sys.exit(app.exec_())

    实现效果:

    ====

  • 相关阅读:
    Android中SharedPreferences介绍和使用方法
    功能(一):添加影像服务图层
    二、策略模式
    一、简单工厂模式
    C#重点内容之:接口(interface)(一)网络初级示例
    Windows API编程(一)完整的示范程序
    秩序让生活趋向于和谐
    模板专题:类模板
    模板专题:函数模板
    STL之vector详解
  • 原文地址:https://www.cnblogs.com/leokale-zz/p/13130152.html
Copyright © 2011-2022 走看看