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图表创建的类
QtCoreQt核心类
QtDBus使用D-Bus协议支持IPC的类
QtDataVisualization支持3D数据可视化的类
QtDesigner允许使用Python扩展Qt设计器的类
QtGuiwidget和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集成的类
QtWebEngineCoreWeb引擎核心类
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中重要的类及其继承关系

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

常用控件

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值