首页 > 其他分享 >Qt和PyQt和PySide之间的关系

Qt和PyQt和PySide之间的关系

时间:2022-12-16 10:34:43浏览次数:63  
标签:Qt PySide python PyQt Python xx c++ qt


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 概谈

所以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的

参考博客:

​​PySide2和PyQt5区别_生化环材的博客

​​第15.5节 PyQt的历史沿革介绍 - 老猿Python

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

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

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

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

标签:Qt,PySide,python,PyQt,Python,xx,c++,qt
From: https://blog.51cto.com/u_13682052/5946882

相关文章

  • pyqt5图书管理系统--6、用户界面之借阅书籍和归还书籍
    本节分为两个部分:借阅书籍界面设计、归还书籍界面设计。主要流程:1、通过进入借阅书籍界面,点击借阅书籍按钮,实现借阅书籍的消息框提醒,和相关数据库内容变动。     2......
  • qt编写多语言软件的方法
    一、概述    qt在编写多国际化软件时,一般采用多语言的方式,既先用英文字符串写代码,后期再进行翻译为其他语言的版本。二、多语言翻译方法2.1在c++文件中多语言方......
  • PCL1.12+VTK9.1+QT6编译部署
     本文讲解使用的环境是vs2019+pcl1.12.0+vtk9.1+qt6.0,最后再展示一个示例程序1 编译VTK   vtk下载地址如下:https://vtk.org/download/然后用cmake构建,修改一下几个地......
  • qt-垂直布局初步
    QWidget在学习垂直布局之前,我们需要了解一个对象,就是QWidget。它的功能就是创建一个窗口。垂直布局,包括水平布局,都需要对窗口使用才能显示,我们不能直接将垂直布局显示出......
  • Qt之自定义输入框(度分秒、经纬度、格式化显示)
    相关资料:http://www.manongjc.com/detail/15-grpefyhtwdpbehh.html  Qt自定义文本输入框实现支持输入度分秒和度两种格式(简易无限制输入)PS:重要的文件我用粗体标注......
  • python安装pyqt的相关经验
    1:pipinstallPyQt5-ihttps://pypi.douban.com/simple首先安装PyQt5的包;2:pipinstallPyQt5-tools-ihttps://pypi.douban.com/simple这个包需要安......
  • QTreeWidget 添加editingFinished()信号
     一.QTreeWidget设置可编辑connect(m_tree,itemChanged(QTreeWidgetItem*,int),this,SLOT(saveModify(QTreeWidgetItem*,int));QTreeWidgetItem*item=newQTreeWidgetIt......
  • PyQt4 的使用
    其语法简单,与PHP语言很相似,只要有其它语言基础,能很快入门.python的第三方库相当丰富,通信,web,GUI支持库很多.在游戏方面,也颇有造诣,有专门的pygame支持,在GUI方面,W......
  • QT 小数点位数
      QStringnumber(doublen,charformat='g',intprecision=6)来设置小数点位数doublea=27.846234;QStringresult=QString::number(a,'f',2);//"27.85"res......
  • QT MVC模型
      QT项视图类主要有三种:QListView,QTreeView,QTableView,对应的基础Model为QAbstractItemModel(QStandardItemModelo为QAbstractItemModel实现),对于QListView和QTa......