Qt和PyQt和PySide之间的关系

本文介绍了Python调用Qt库的两种方式——PySide和PyQt,包括它们的背景、特点及使用上的差异。PySide由Qt公司提供,但资料较少,而PyQt资料丰富,但采用GPL协议。Python调用Qt库需要通过sip工具将C++编写的库封装成Python绑定。PyQt程序打包后依赖于.pyd文件,.pyi文件则用于IDE的代码提示。此外,文章还提及了Python程序打包成exe和.pyc文件的相关知识。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Qt:是qt公司用c++语言写的一整套界面程序开发库。具有非常丰富的资料。LGPL协议。

PySide:为了支持python语言使用这个qt库,所以qt公司搞了个PySide这个封装库,也就是通过python语言编程,但是底层调用的就是qt库,通过这个PySide这个封装库,用户就只需要编写python语言即可创建界面程序啦。但是配套资料非常少(说明qt公司不主推这个玩意),只能通过c++版的qt库的资料照猫画虎的看。LGPL协议。

PyQt:另外一个公司也是为了支持python语言使用这个qt库,自己搞了这个PyQt封装库,但是资料丰富很多,使用的人好像更多,他们搞这个比qt公司做PySide还早。但是是GPL协议。这个协议对于商用不友好。官网 Riverbank Computing | News    另一个可参考网站Learn Python PyQt | Learn Python PyQt

python如何实现调用qt库的

这里的关键问题在于,python能调用qt原生库吗(c++写的,编译成的各种xx.dll),直接的话是不行的,需要通过一个叫做sip的工具,它可以把qt原生库封装成python绑定(应该是对这些xx.dll做了一层封装,好像是变成了xx.pyd文件)(绑定是作为一组 Python 模块实现的,包含 1,000 多个类。Riverbank Computing | Introduction),然后python语言写的程序中就能直接调用这些库了(而且方法的名字,参数都是一样的,方便了c++开发qt的人和pyqt开发的人互相代码参考了)。qt和python关系_Qt/PyQt 概谈_weixin_39630515的博客-CSDN博客

所以pyqt编写的程序打包出来后,调用的库,就是xx.pyd。我们还会看到一个对应的xx.pyi文件,这个是给IDE用的(IDE中写程序调用这些xx.pyd中的函数,才知道有哪些,如何用),用于代码智能提示的。

所以xx.pyd就相当于c/c++程序中的xx.dll文件,而xx.pyi就相当于c/c++程序中的xx.h文件。使用区别就是:python程序开发中,不需要include xx.pyi,而c/c++程序开发中,需要include xx.h文件。Python pyi文件_hxxjxw的博客-CSDN博客_pyi文件

参考博客:

PySide2和PyQt5区别_生化环材的博客-CSDN博客_pyqt5 pyside2

第15.5节 PyQt的历史沿革介绍 - 老猿Python - 博客园

其它可以了解的:关于加速python的方法,Cython和Python,CPython之间的关系

Cython 是什么?为什么会有 Cython?_Python猫的博客-CSDN博客

python开发的程序,虽然是解释性执行,但是也可以打包成一个exe文件,原理就是把解释器打包进来了,但是这个exe内部:还是解释器在一条一条的解释执行这个python脚本,所以运行速度不会变快。编译成exe,的Python脚本运行速度会变快吗? - 知乎

python编译后的结果文件.pyc文件,可以反编译为python源码文件,用工具 Easy Python Decompiler。Python文件.py||.pyi||.pyc||.pyo||.pyd等各种文件后缀区别_permike的博客-CSDN博客_pyd pyi python

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值