PyQt5模块、类和控件学习总结

PyQt5模块、类和控件学习总结

刚入门PyQt5就被各种模块、类和控件的名称搞混了,为了后续学习能有系统的概念意识,于是就整理了网上查找的相关资料,进行归纳总结,借此平台整理笔记,在此感谢CSDN,以及相关资料的原创者,文末附上相关链接。

PyQt5包含的模块(表格总结)

模块名 介绍
Enginio 用于访问Qt云服务的类(不推荐)
QAxContainer 访问ActiveX控件和COM对象的类
Qt 其他模块的合并
Qt3DAnimation 在模拟中支持动画的类
Qt3DCore 支持近实时仿真系统的核心类
Qt3DExtras 预先构建的元素,与Qt3D一起使用
Qt3DInput 处理使用Qt3D时用户输入的类
Qt3DLogic 启用帧同步的类
Qt3DRender 启用2D和3D呈现的类
QtAndroidExtras 特定于Android的附加类
QtBluetooth 支持设备之间蓝牙连接的类
QtChart 支持2D图表创建的类
QtCore Qt核心类
QtDBus 使用D-Bus协议支持IPC的类
QtDataVisualization 支持3D数据可视化的类
QtDesigner 允许使用Python扩展Qt设计器的类
QtGui widget和OpenGL gui共有的核心类
QtHelp 用于创建和查看可搜索文档的类
QtLocation 用于创建映射应用程序的类
QtMacExtras 特定于macOS和iOS的附加类
QtMultimedia 多媒体内容、摄像机和收音机的类
QtMultimediaWidgets 提供附加的多媒体相关小部件和控件的类
QtNetwork 核心网络类
QtNetworkAuth 网络授权类
QtNfc 支持设备之间NFC连接的类
QtOpenGL 在传统窗口小部件中呈现OpenGL的类(不推荐)
QtPositioning 从卫星、wifi等获取定位信息的类
QtPrintSupport 实现打印的类
QtPurchasing 支持从应用商店购买应用程序的类
QtQml 与QML语言集成的类
QtQuick 使用Python代码扩展QML应用程序的类
QtQuickWidgets 用于在传统小部件中呈现QML场景的类
QtRemoteObjects 用于在进程或系统之间共享QObject的API的类
QtSensors 用于访问系统硬件传感器的类
QtSerialPort 用于访问系统的串行端口的类
QtSql 与SQL数据库集成的类
QtSvg 提供对SVG支持的类
QtTest 支持GUI应用程序单元测试的类
QtWebChannel 用于Python和HTML/JavaScript之间的点对点通信的类
QtWebEngine 用于将QML Web引擎对象与Python集成的类
QtWebEngineCore Web引擎核心类
QtWebEngineWidgets 基于Chromium的web浏览器
QtWebKit 基于WebKit2的web浏览器(已弃用)
QtWebKitWidgets 基于WebKit1的web浏览器(已弃用)
QtWebSockets 实现WebSocket协议的类
QtWidgets 用于创建经典桌面样式ui的类
QtWinExtras 特定于Windows的附加类
QtX11Extras 特定于X11的其他类
QtXml 支持SAX和DOM到XML接口的类
QtXmlPatterns 支持其他XML技术的类
sip 绑定开发人员和用户的实用程序
uic 用于处理Qt设计器创建的文件的类

模块的具体说明

—QtCore模块——涵盖了包的核心的非GUI功能,此模块被用于处理程序中涉及的时间、文件、目录、数据类型、文本流、链接、QMimeData、线程或进程等对象。
—QtGui模块——涵盖了多种基本图形功能的类,包括但不限于:窗口集、事件处理、2D图形、基本的图像和界面、字体和文本类。
—QtWidgets模块——包含了一整套UI元素控件,用于建立符合系统风格的Classic界面,非常方便,可以在安装时选择是否使用此功能。
—QtMultimedia模块——包含了一套类库,用于处理多媒体事件,通过调用API接口访问摄像头、语音设备、收发消息(Radio Functionality)等。
—QtBluetooth模块——包含了处理蓝牙活动的类库,其功能包括:扫描设备、连接、交互等行为。
—QtNetwork模块——包含了用于进行网络编程的类库,通过提供便捷的TCP/IP及UDP的C/S代码集合,使得基于Qt的网络编程更容易。
—QtPositioning模块——用于获取位置信息,此模块允许使用多种方式实现定位,包括但不限于:卫星、无线网、文字信息。此模块一般用在网络地图定位系统中。
—Enginio模块——用于构建客户端的应用程序库,在运行时访问Qt Cloud 服务器托管的应用程序。
—QtWebSockets模块——包含了一组类程序,用于实现WebSocket协议。
—QtWebKit模块——包含了用于实现基于WebKit2的网络浏览器的类库。
—QtWebKitWidgets模块——提供了一组类库,用于实现一种由Widgets包构建的、基于WebKit1的网络浏览器。
—QtXml模块——包含了用于处理XML的类库,此模块为SAX和DOM API 的实现提供了函数。
—QtSvg模块——通过一组类库,为显示矢量图形文件的内容提供了函数。
—QtSql模块——提供了数据库对象的接口以供使用。
—QtTest模块——包含了通过单元测试,调试PyQt5应用程序的功能。
—QtHelp模块——包含了用于创建和查看可查找的文档的类。
—QtOpenGL模块——使用OpenGL库来渲染3D和2D图形。该模块使得Qt GUI库和OpenGL库无缝集成。
—QtXmlPatterns模块——所包含的类实现了对XML和自定义数据模型的Xquery与XPath的支持。
—QtDesigner模块——所包含的类允许使用PyQt扩展Qt Designer。
—Qt模块——将上面模块中的类综合到一个单一的模块中。这样做的好处是你不用担心哪个模块包含了哪个特定的类;坏处是加载到整个Qt框架中,从而增加了应用程序的内存占用。
—uic模块——所包含的类用来处理.ui文件,该文件由Qt Designer创建,用于描述整个或者部分用户界面。它可以将.ui文件编译为.py文件,以便其他Python程序调用。
PyQt5增加了很多模块,可以去官方网站查看,基本上看模块名字就知道大概用处了。
PyQt5已经没有phonon模块了,使用QtMultimedia来处理媒体。
另外,PyQt5新增的QtWebEngineWidgets模块替代了过时的QtWebKit,但是QtWebKit还在,而新模块更耗内存,具体使用哪个由读者自己决定。
A.2 PyQt 5主要类介绍PyQt5 API拥有620多个类和6000个函数。它是一个跨平台的工具包,可以运行在所有主流的操作系统上,包括Windows、Linux和Mac OS。
—QObject类:在类层次结构中是顶部类(Top Class),它是所有PyQt对象的基类。
—QPaintDevice类:所有可绘制的对象的基类。
—QApplication类:用于管理图形用户界面应用程序的控制流和主要设置。它包含主事件循环,对来自窗口系统和其他资源的所有事件进行处理和调度;它也对应用程序的初始化和结束进行处理,并且提供对话管理;还对绝大多数系统范围和应用程序范围的设置进行处理。
—QWidget类:所有用户界面对象的基类。QDialog类和QFrame类继承自QWidget类,这两个类有自己的子类系统(Sub-Class System)。
— QFrame类:有框架的窗口控件的基类。它也被用来直接创建没有任何内容的简单框架,但是通常要用到QHBox或QVBox,因为它们可以自动布置放到框架中的窗口控件。
—QMainWindow类:提供一个有菜单栏、锚接窗口(如工具栏)和状态栏的主应用程序窗口。
— QDialog类:最普通的顶级窗口。如果一个窗口控件没有被嵌入到父窗口控件中,那么该窗口控件就被称为顶级窗口控件。在通常情况下,顶级窗口控件是有框架和标题栏的窗口。
在Qt中,QMainWindow和不同的QDialog的子类是最普通的顶级窗口。

PyQt 5中重要的类及其继承关系

PyQt5模块、类和控件学习总结_第1张图片

PyQt5模块、类和控件学习总结_第2张图片
PyQt5模块、类和控件学习总结_第3张图片
PyQt5模块、类和控件学习总结_第4张图片
PyQt5模块、类和控件学习总结_第5张图片

常用控件

—QLabel控件:用来显示文本或图像。
—QLineEdit窗口控件:提供了一个单页面的单行文本编辑器。
—QTextEdit窗口控件:提供了一个单页面的多行文本编辑器。
—QPushButton窗口控件:提供了一个命令按钮。
—QRadioButton控件:提供了一个单选钮和一个文本或像素映射标签。
—QCheckBox窗口控件:提供了一个带文本标签的复选框。
—QspinBox控件:允许用户选择一个值,要么通过按向上/向下键增加/减少当前显示值,要么直接将值输入到输入框中。
—QScrollBar窗口控件:提供了一个水平的或垂直的滚动条。
—QSlider控件:提供了一个垂直的或水平的滑动条。
—QComboBox控件:一个组合按钮,用于弹出列表。
—QMenuBar控件:提供了一个横向菜单栏。
—QStatusBar控件:提供了一个适合呈现状态信息的水平条,通常放在QMainWindow的底部。
—QToolBar控件:提供了一个工具栏,可以包含多个命令按钮,通常放在QMainWindow的顶部。
—QListView控件:可以显示和控制可选的多选列表,可以设置ListMode或IconMode。
—QPixmap控件:可以在绘图设备上显示图像,通常放在QLabel或QPushButton类中。
—Qdialog控件:对话框窗口的基类。
QWidget是所有用户界面类的基类,它能接收所有的鼠标、键盘和其他系统窗口事件。
没有被嵌入到父窗口中的Widget会被当作一个窗口来调用,
当然,它也可以使用setWindowFlags(Qt.WindowFlags)函数来设置窗口的显示效果。
QWidget的构造函数可以接收两个参数,其中第一个参数是该窗口的父窗口;第二个参数是该窗口的Flag,也就是Qt.WindowFlags。
根据父窗口来决定Widget是嵌入到父窗口中还是被当作一个独立的窗口来调用,根据Flag来设置Widget窗口的一些属性。
QMainWindow(主窗口)一般是应用程序的框架,在主窗口中可以添加所需要的Widget,比如添加菜单栏、工具栏、状态栏等。
主窗口通常用于提供一个大的中央窗口控件(如文本编辑或者绘制画布)以及周围的菜单栏、工具栏和状态栏。
QMainWindow常常被继承,这使得封装中央控件、菜单栏,工具栏以及窗口状态变得更容易,也可以使用Qt Designer来创建主窗口。

QApplication类

QApplication类用于管理图形用户界面应用程序的控制流和主要设置,可以说QApplication是PyQt的整个后台管理的命脉。
任何一个使用PyQt开发的图形用户界面应用程序,都存在一个QApplication对象。
在PyQt中,可以通过如下代码载入必需的模块,获得QApplication类。
from PyQt5.QtWidgets import QApplication在PyQt的应用程序实例中包含了QApplication类的初始化,通常放在Python脚本的
if name == “main”: 语句后面,
类似于放在C的main函数里,作为主程序的入口。因为QApplication对象做了很多初始化,所以它必须在创建窗口之前被创建。
QApplication类还可以处理命令行参数,在QApplication类初始化时,需要引入参数sys.argv。sys.argv是来自命令行的参数列表,
Python脚本可以从shell运行,比如用鼠标双击qtSample.py,就启动了一个PyQt应用程序。引入sys.argv后就能让程序从命令行启动,比如在命令行中输入 pythonqtSample.py,也可以达到同样的效果。
QApplication类的初始化可以参考以下脚本引用。
应用程序整体框架为:

if __name__ == "__main__":  
    app =QApplication(sys.argv)    # 界面生成代码 ...
    sys.exit(app.exec_())
    sys.exit()   #函数可以结束一个应用程序,使应用程序在主循环中退出

QApplication采用事件循环机制,当QApplication初始化后,就进入应用程序的主循环(Main Loop),开始进行事件处理,主循环从窗口系统接收事件,并将这些事件分配到应用程序的控件中。
当调用sys.exit()函数时,主循环就会结束。
PyQt 5的应用程序是事件驱动的,比如键盘事件、鼠标事件等。
[[原文链接] PyQt5 主要模块总结]
(https://www.52pojie.cn/thread-850176-1-1.html)

你可能感兴趣的:(PyQt5学习笔记,python)