众所周知,Python语言在这两年确实很火,作为一种“胶水”语言,似乎它是万能的,什么都能做,这依赖于它能够支持无数的外部库,这使得Python就变得无比强大。那么身为Qt的开发者,也自然不会放过Python语言的集成了,毕竟它这么牛叉,说不定哪天可以用到项目中来呢是吧,那就必须得提前了解一下了。
那么,面对网上那么多支持的模块:PyQt、PySide、PySide2,到底该用哪一个呢?这几个之间到底有什么区别?
首先要明确的最重要的一点就是,PyQt和PySide是两个完全不同的玩意儿,千万别以为这两个都是Qt支持Python或者Python支持Qt,他俩是不一样的,虽然实现的功能都差不多。
PyQt要比PySide推出时间早得多,它的开发商是Riverbank Computing,由于推出时间早,PyQt就比较成熟了,并且资料也很完善,最开始是有PyQt4对应的是Qt4版本,后来推出了PyQt5,对应Qt5版本,目前最新发布的版本是PyQt v5.13.0。值得注意的是PyQt的采用的是GPLv3许可证和需要购买版权的商业许可证发布的,该许可证允许开发专有应用程序,可以由开发者选择。GPLv3许可证大概意思就是说,使用PyQt后你的程序就必须要开源,如果闭源商用就会违反协议,后果自负,在国内可能很多公司部注重这个,随便在用,但是如果公司比较有影响力的话,违反协议说不定哪天收到律师函。
对比PyQt,PySide就要晚的多问世了,由于先前PySide项目不是很完善,又缺乏文档,所以其存在感不高。上面我们说到PyQt的开发商是Riverbank Computing,而PySide就不同了,它是Qt的亲儿子。
当时Nokia(Nokia那时候收购了Trolltech,所以Nokia是当时Qt的爹)和Riverbank Computing谈,希望PyQt能添加对LGPL协议的支持,这对于很多商业用户会更加友好,毕竟PyQt里使用的也是我们LGPL协议版本的Qt,但是Riverbank Computing不同意。
Nokia一气之下决定单干,于2009年8月发布了支持了LGPL协议的PySide,PyQt的对标产品。
LGPL协议是一个商业友好的协议使用 LGPL 协议开发闭源程序,如果你使用动态链接的形式,那么,你可以以任何形式(商业的、非商业的、开源的、非开源的等等)发布你的应用程序。
2011年,Nokia将Qt的商业许可卖给Digia。
2012年,Nokia将Qt完全卖给Digia,后者在2012年年底推出了Qt5。
2015 年 10 月 14 日 PySide 1.2.4 发布,支持 Qt 4.8.7 框架。兼容 Python2.6 2.7 (采用 MSVC2008 构建),兼容 Python3.3 3.4 (采用 MSVC2010 构建)。
反观PyQt,在Qt5推出的半年内(2013年6月)就发布了支持Qt5的pyQt5。
PySide对Qt5提供支持的计划也从2014年开始筹备,也就是2015年上马的Qt for Python项目,该项目开发的模块命名为PySide2,以表示与老一代PySide的不同。所以其实PySide2只是PySide的升级版,PySide对标PyQt4,而PySide2对标PyQt5。
总的来说PyQt和PySide2这两者最大的区别就是协议的不同,来自于不同的开发商,但其实这两个如果要修改并兼容的话,改动并不是很大,具体的可以参照Qt官方文档介绍
虽然PyQt发布的早,并且稳定,资料也比较多,而PySide起步比较晚,直到2018年6月正式发布了PySide2的第一个版本,从0到1是最难的一步,后面就容易了,尤其发布的Qt 5.12 LTS释放了非常积极的信号,PySide2已经日趋完善,又是亲生的,还有LGPL开源协议的加持,今后PySide2有足够的理由成为Python开发者使用Qt的第一选择。
为了测试Linux磁盘的读写速度,可使用dd命令,dd命令是一个非常使用的命令,可用于文件的拷贝,下面小编就给大家介绍了如何使用dd命令测试Linux磁盘的读写速度吧。1、先熟悉两个特殊的设备:(1)/dev/null:回收站、无底洞。(2)/dev/zero:产生字符。2、测试磁盘写能力代码如下:time dd if=/dev/zero of=/testw.dbf bs=4k count=100...
新建存储目录mkdir /opt/fastdfs_storage_data1修改配置文件storage.confstore_path_count=2 ##将原来的1改为2store_path1=/opt/fastdfs_storage_data1 ##新增修改配置文件mod_storage.confstore_path_count=2 ##将原来的1改为2store_p..._store_path1
现阶段,政府都会对高速公路收费进行管理,用户通过进入相关系统对高速公路收费状况进行了解,简化了高速公路收费管理流程,进而提高政府高速收费管理效率,达到更好的管理目的。本设计利用JSP作为开发语言。后台采用了MySQL数据库设计。本系统有两种登录模式:管理员登录。管理员通过系统对系统信息进行增加、修改、删除,同时拥有对收费站、收费员信息的增加、修改、删除、查询功能,以及对收费标准信息、收费记录、数据备份等管理。收费员登录。收费员则通过系统进行个人信息的编制与收费记录管理等功能。该系统除了实现以上功能外,还具
面试场景面试官:1:你对HashMap了解吗?我回答:key-value形式存放数据,支持,null-null,null-value,key-null,key-value 四种形式的。线程不安全。数据结构 数组+链表+红黑树来存放数据。实现Map接口效率较HashTable来说比较快面试官:2:刚说线程不安全,那如果要线程安全该如何处理?我回答:使用Collectio..._面试时hashmap的理解
btfull命令可以看到详细的信息包括调用参数等此时结合源代码如 lj_state.c:71 + 参数分析原因(gdb) bt full#0 0x00007f2169c704f5 in raise (sig=6) at ../nptl/sysdeps/unix/sysv/linux/raise.c:64resultvar = 0pid = selftid = #1 0x00007f2169c7...
【Network Architecture】Densely Connected Convolutional Networks 论文解析 目录 0. Paper link 1. Overview 2. DenseNet Architecture 2....
首先进入到mysql命令行界面,然后依次输入以下命令。 USE mysql; ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’; FLUSH PRIVILEGES; ..._mysql 1.8 authentic
前面总结了一下viewport和px(屏幕分辨率)之间的关系, 现在来深入理解一下viewport1、css中的1px不等于设备的1px 如之前说的在分辨率高的但是尺寸一样的屏幕上, 如i3的320×480, 1px=1像素, i4的640×960, 1px=2物理像素 影响css中px的变化: 用户缩放, 用户把页面放大一倍, 1px=2倍原始物理像素; 把页面缩小一倍, 1px..._meta标签viewport的深入理解
跨域请求两种结果一种 request 会收不到 response,因为 response 被浏览器拦截了,内容不告诉你 另一种请求会根本发不出去,因为浏览器不允许发出那样的 requestsimple 请求跨域条件请求方法是以下3种方法 HEAD POST GET HTTP的头信息不超出以下几种字段 只能有浏览器默认添加的 headers,以及一些 CORS 协议中默许的 headers 比如 Accept 等,更多被允许的 headers,可以看这里 _request response cros
hexo博客的本地创建(一)_hexo创建博客
------------------------------------------------------------------yii2.0------------------------------------------------------------------------1.php新特性 匿名函数 数组短语法形式: [1,2,3] 取代 array(1,2,3)...
Directory一、Directory:创建文件夹,在工程中可见eg1:在工程中(Assets目录下)创建一个名为test的文件夹/*在工程中(Assets目录下)创建一个名为test的文件夹*/private string filePath;public void CreateFile(){ filePath=Application.dataPath;//获取本地路径 filePath=videoPath.Replace("/Assets/", null);//切换到..._unity备份哪些文件夹可以删除