怎样理解Qt For Python的模块结构

发布时间:2021-10-11 18:43:47 作者:柒染
来源:亿速云 阅读:142

这篇文章将为大家详细讲解有关怎样理解Qt For Python的模块结构,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

在安装完成PyQt5/PySide2之后,我们先不急着开始进行Python图形界面的编程。因为现在我们对PyQt5和PySide2还一无所知。


PyQt5和PySide2都是QT图形界面开发包的Python封装模块,它们最大程度地利用Python编程语言还原了QT在原生C++下实现的功能和定义。所以我们使用PyQt5或是PySide2都可以较完整地在Python编程语言中完成QT的图形界面应用开发。


同时,由于PyQt5和PySide2的发展历史、授权协议等有所差异,所以我们在此建议大家对两者进行如下选择:



所以在《一看就懂的Python图形界面编程》系列教程中,为了方便演示,我们使用PyQt5进行知识点示例代码的讲解。如果有读者对PySide2的代码有需求,可以自行替换。


(对于大多数子模块而言,只需要简单的将模块引入中的PyQt5替换为PySide2即可,其他特殊模块则可以参考官网文档说明)。


在开始使用PyQt5/PySide2进行Python图形界面编程之前,我们先来了解一些我们即将使用的图形界面开发模块的结构。就像对房屋进行装修之前,只有对房屋的结构、构成有了了解,才能更好的进行施工。


PyQt5/PySide2作为一个大型的模块,不像一些小的模块只有极少数的子类和方法属性,其拥有大量的子模块、定义和对象,如果不对其全局的结构有一个了解,就会陷入不知从何开始的困局。


一、PyQt5/PySide2的子模块


在安装完成PyQt5/PySide2之后,我们就可以在IDE或代码编辑器中通过from……import……,或直接的import对其进行引入使用了。


在IDE中使用from语法引入PyQt5/PySide2,代码如下所示:

   
     
   
   
   
from PyQt5 import Q
           

如果你使用的IDE或代码编辑器有智能提示功能,那么就会显示PyQt5模块下的以Q开头的子模块,如下图所示:

 


怎样理解Qt For Python的模块结构

因为QT模块的风格就是子模块都是Q开头,所以IDE智能提示中显示的子模块基本上包含了PyQt5中所有的子模块。


这些子模块包含但不限于以下模块:


 
QtCore,QtWidgets,QtGui,QAxContainer,QtBluetooth,QtDBus,QtDesigner,QtHelp,QtLocation,QtMultimedia,QtMultimediaWidgets,QtNetwork,QtNetworkAuth,QtNfc,QtOpenGL,QtPositioning,QtPrintSupport,QtQml,QtQuick,QtQuickWidgets,QtRemoteObjects,QtSensors,QtSerialPort,QtSql,QtSvg,QtTest,QtWebChannel,QtWebSockets,QtWinExtras,QtXml,QtXmlPatterns
 
在这些模块中,大致可以分为以下几个类别:
 


怎样理解Qt For Python的模块结构

下面我们分别来认识一下几类模块。


 

、通用基础模块——房屋的基石


在PyQt5的通用基础模块中,又分为核心基础模块和一般性基础模块。这个其实很好理解,核心基础模块,相当于一栋房子的地基、承重梁、水泥砖头等等,用于搭建起房屋的基本结构;

怎样理解Qt For Python的模块结构

属于基础模块的子模块有以下模块:

怎样理解Qt For Python的模块结构

  上述的三个子模块,是PyQt5中传统图形界面程序编程涉及到的核心模块。


注意:我们知道,原生的Qt使用的是C++语言进行图形界面的开发,从Qt4.7开始,Qt中引入了一种新的图形界面开发语言——QML作为原生QT开发语言C++的替代品,同时其构建了一套名为QtQuick的类库,用于使用自定义图形界面来构建高度动态的图形界面应用程序。


其属于Qt开发的另一个分支,Qt的Python封装包中也包含了相关的模块支持,但是在本系列教程中,我们只使用传统Qt图形界面开发的模块。


我们再来看看功能模块。


 

功能模块——扩展房屋属性


在功能模块中,也分为基础功能模块和其他功能模块。


基础功能模块,其重要程度低于核心基础模块,但是又高于其他功能模块。随着时代的发展,需求的变动,一个功能模块可能会升级为基础功能模块,也有可能降级为其他功能模块。同理,一个其他功能模块也有可能变为基础功能模块。


就像几十年前,家家户户通上电是一个追求的目标,网络也只是家庭才有的配置。而现在,每家每户都有电,并且网络已经成为了标配。

怎样理解Qt For Python的模块结构

在当前版本,基础功能模块包含了如下模块:

上述两个功能模块都是用来实现多媒体功能的。



上面我们说过,基础功能模块和其他功能模块就像电和网络一样,在不同的时期的重要性会有不同的变化。

怎样理解Qt For Python的模块结构

无论其变化几何,这些模块终究是为了扩展图形界面程序的功能而生。下面我们来看看PyQt5中的部分其他功能模块:



对功能模块的细分并不需要特别严谨,因为从某种程度而言,除了核心模块之外的模块都属于功能模块。核心模块用于打好图形界面程序的基础,功能模块无论是基础功能还是其他功能,都是用于实现图形界面程序的功能,一个定义为其他功能模块的模块在自己的图形界面编程过程中的使用频率和重要程度都高于一个基础功能模块。所以大家灵活运用即可。


 

、工具模块


Qt的工具模块主要是为了方便开发人员对图形界面程序进行设计和开发,其提供了Qt设计师(QtDesigner)这个图形化的程序设计工具,能够便捷地利用鼠标拖拽来快速绘制程序的界面和基础的事件响应。


为了便于大家对PyQt5各个模块代码的理解,本系列教程将不使用Qt设计师来设计和绘制图形界面,有需要的读者可以自行下载安装使用QT设计师。

关于怎样理解Qt For Python的模块结构就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

推荐阅读:
  1. qt 线程与ui线程同步
  2. 应用程序如何链接静态QT Plugin库

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

qt python

上一篇:python如何使用requests+re

下一篇:Python中的The Fuck库是怎样的

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》