• PyQt5可视化编程-菜单和工具栏


    一、简介
    PyQt5 是Digia的一套Qt5与python绑定的应用框架,同时支持2.x和3.x。本教程使用的是3.x。Qt库由Riverbank Computing开发,
    是最强大的GUI库之一 ,官方网站:www.riverbankcomputing.co.uk/news。
    PyQt5是由一系列Python模块组成。超过620个类,6000和函数和方法。能在诸如Unix、Windows和Mac OS等主流操作系统上运行。
    PyQt5有两种证书,GPL和商业证书。
    二、PyQt5类中的模块:
    PyQt5类中的主要模块有:
    1.QtCore 包含了核心的非GUI的功能。主要和时间、文件与文件夹、各种数据、流、URLs、mime类文件、进程与线程一起使用。
    2.QtGui 包含了窗口系统、事件处理、2D图像、基本绘画、字体和文字类。
    QtWidgets         类包含了一系列创建桌面应用的UI元素。
    QtMultimedia      包含了处理多媒体的内容和调用摄像头API的类。
    QtBluetooth       模块包含了查找和连接蓝牙的类。
    QtNetwork         包含了网络编程的类,这些工具能让TCP/IP和UDP开发变得更加方便和可靠。
    QtPositioning     包含了定位的类,可以使用卫星、WiFi甚至文本。
    Engine            包含了通过客户端进入和管理Qt Cloud的类。
    QtWebSockets      包含了WebSocket协议的类。
    QtWebKit          包含了一个基WebKit2的web浏览器。
    QtWebKitWidgets   包含了基于QtWidgets的WebKit1的类。
    QtXml             包含了处理xml的类,提供了SAX和DOM API的工具。
    QtSvg             提供了显示SVG内容的类,Scalable Vector Graphics(SVG)是一种是一种基于可扩展标记语言(XML),用于描述二维矢量图形的图形格式(这句话来自于维基百科)。
    QtSql             提供了处理数据库的工具。
    QtTest            提供了测试PyQt5应用的工具
    三、PyQt5中的菜单和工具栏
    这个章节,我们会创建状态栏、菜单和工具栏。菜单是一组位于菜单栏的命令。工具栏是应用的一些常用工具按钮。状态栏显示一些状态信息,通常在应用的底部。
    (1)状态栏:状态栏是用来显示应用的状态信息的组件。
    状态栏是由QMainWindow创建的:self.statusBar().showMessage('Ready')
    调用 QtGui.QMainWindow 类的 statusBar() 方法,创建状态栏。第一次调用创建一个状态栏,返回一个状态栏对象。showMessage() 方法在状态栏上显示一条信息

    (2)菜单栏:菜单栏是非常常用的。是一组命令的集合。
    exitAct = QAction(QIcon('img/1.png'), '&Exit', self)#创建图标和exit标签
    exitAct.setShortcut('Ctrl+Q')#创建快捷键组合
    exitAct.setStatusTip('Exit application')#创建状态栏
    当鼠标悬停在菜单栏的时候,能显示当前状态。当执行这个指定的动作时,就触发了一个事件。这个事件跟 QApplication的quit() 行为相关联,所以这个动作就能终止这个应用。
    exitAct.triggered.connect(qApp.quit)
    menuBar()创建菜单栏。这里创建了一个菜单栏,并在上面添加了一个file菜单,并关联了点击退出应用的事件。
    menubar = self.menuBar()
    fileMenu = menubar.addMenu('&File')
    fileMenu.addAction(exitAct)

     
    (3)子菜单:子菜单是嵌套在菜单里面的二级或者三级等的菜单。
    使用 QMenu 创建一个新菜单
    impMenu = QMenu('Import', self)
    使用 addAction 添加一个动作
    impAct = QAction('Import mail', self)
    impMenu.addAction(impAct)


    (4)勾选菜单:
    行为/动作能切换状态栏显示或者隐藏。用 checkable 选项创建一个能选中的菜单。
    viewStatAct = QAction('View statusbar', self, checkable=True)
    默认设置为选中状态:viewStatAct.setChecked(True)
    依据选中状态切换状态栏的显示与否:
    def toggleMenu(self, state):
        if state:
            self.statusbar.show()
        else:
            self.statusbar.hide()

     
    (5)右键菜单:
    右键菜单也叫弹出框,是在某些场合下显示的一组命令。例如,浏览器里,网页上的右键菜单里会有刷新,返回或者查看页
    面源代码。如果在工具栏上右键,会得到一个不同的用来管理工具栏的菜单。
    使用 exec_() 方法显示菜单。从鼠标右键事件对象中获得当前坐标。 mapToGlobal() 方法把当前组件的相对坐标转换为窗口(window)的绝对坐标。
    action = cmenu.exec_(self.mapToGlobal(event.pos()))
    如果右键菜单里触发了事件,也就触发了推出事件,我们就关闭菜单。
    if action == quitAct:qApp.quit()


    (6)工具栏:菜单栏包含了所有的命令,工具栏就是常用的命令的集合。
    退出图标并绑定快捷键:
    exitAct = QAction(QIcon('img/1.png'), 'Exit', self)
    exitAct.setShortcut('Ctrl+Q')
    exitAct.triggered.connect(qApp.quit)
    创建工具栏并将图标展示在工具栏中:
    self.toolbar = self.addToolBar('Exit')
    self.toolbar.addAction(exitAct)


    汇总:
    主窗口:QMainWindow 提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。主窗口是下面这些窗口的合称。
    QAction是菜单栏、工具栏或者快捷键的动作的组合。

  • 相关阅读:
    iptables使用详解(centos7)
    LVS+Keepalived群集
    【ajax】withCredentials
    软考 系统架构设计师系列知识点之特定领域软件体系结构DSSA(4)
    Flink SQL 时区 -- 时间字符串转时间戳并转换时区
    关于工信部发布的app备案以及小程序备案流程
    leetcode---距离计算
    Spring Boot 基础使用
    redis-操作数据库
    DNS解析流程
  • 原文地址:https://blog.csdn.net/a316495442/article/details/128042557