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() 方法在状态栏上显示一条信息
PyQt5可视化编程-菜单和工具栏_第1张图片
(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)

PyQt5可视化编程-菜单和工具栏_第2张图片

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

PyQt5可视化编程-菜单和工具栏_第3张图片
(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()

PyQt5可视化编程-菜单和工具栏_第4张图片

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

PyQt5可视化编程-菜单和工具栏_第5张图片


(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)

PyQt5可视化编程-菜单和工具栏_第6张图片


汇总:
主窗口:QMainWindow 提供了主窗口的功能,使用它能创建一些简单的状态栏、工具栏和菜单栏。主窗口是下面这些窗口的合称。
QAction是菜单栏、工具栏或者快捷键的动作的组合。
PyQt5可视化编程-菜单和工具栏_第7张图片

你可能感兴趣的:(PyQt5基础知识,qt,python,开发语言)