pyqt4pyqt5哪个好用_pyqt5使用

pyqt4pyqt5哪个好用_pyqt5使用,第1张

PyQt5不兼容PyQt4(尽管经验表明,将PyQt4的应用程序移植到PyQt5难度不是很大)。本节描述了两者之间的主要差异。

支持Python的版本

不支持较早的Python26之前的版本┊。

推荐使用特性

PyQt5不支持任何被标记为过时的或废弃的QTV50的API。然而,还是可能有一些“漏网之鱼”。如果将来发现了,这些错误将被删除。

多个API

PyQt4支持许多不同的API版本(QString,QVariant等)。QVariant

PyQt5只支持V2版本的API。一个例外:对于QVariant,去除了。

老式的信号和槽

PyQt4的旧式的信号和槽不再被支持。因此以下用法在PyQt5中已经不能使用:

QObjectconnect()

QObjectemit()

SIGNAL()

SLOT()

所有那些含有参数,并且对返回结果调用SIGNAL()或SLOT()的方法不再被支持。绑定信号与调用函数总是等效的。

此外,另一个差异是增加了下面的函数:

disconnect()断开所有对QObject实例的连接,不需要参数。

新风格的信号和槽

QT实现的信号与一个可选的参数作为两个独立的信号,一个与论点和一个没有它。PyQt4暴露这两允许你连接到他们每个。然而,当发射信号,你必须使用适当的参数发出的信号数。

PyQt5暴露唯一的信号在所有指定参数。然而它允许任何可选参数被省略时,发射信号。

不同于PyQt4,PyQt5支持在类中自定义属性、信号与槽,即使这个类没有继承自QObject(比如:混合类)。

,QtScript和模块

PyQt4的,QtScript和模块不再支持。这些已被替换为PyQt5的QtQml和QtQuick模块,PyQt5支持Python对象创建QML。

QtGui模块

PyQt4的QtGui模块,在PyQt5中被拆分成三个模块:QtGui,和QtWidgets。

QtOpenGL模块

只有QGlContext,QGlFormat和QGlWidget类被PyQt5支持。

QtWebKit模块

PyQt4的QtWebKit模块被分成PyQt5的QtWebKit和模块。

pyqtconfig模块

PyQt4的pyqtconfig模块不支持。截面PyQt5扩展的API介绍了支持PyQt5(例如提供第三方包qscintilla),要建立在PyQt5。

dbusmainloopqt模块

PyQt4的dbusmainloopqt模块称为dbusmainloopPyQt5在PyQt5。这使得他们可以并排安装。它们的功能是相同。

QDataStream

的reaint8(),readint8(),writeuint8()和writeint8()方法解释值读写数字。PyQt4中它们被解释为单个字符的字符串。

QFileDialog

PyQt4的QFileDialog类的(),()和()方法,在PyQt5中已更名为(),()和()。

而PyQt4原来的(),()和()不再被PyQt5支持。

QGraphicsItemAnimation

对废弃的QGraphicsItemAnimation类的支持已被删除。如果移植现有的PyQt4应用程序,首先考虑用QPropertyAnimation替换。

QMatrix

对废弃的QMatrix类的支持已被删除。如果移植现有的PyQt4应用程序,首先考虑用QTransform替换。

QPyTextObject

PyQt4的QPyTextObject,是作为一个无法定义一个继承多个Qt类的Python类的变通的解决方法。PyQt5支持定义一个Python类,来继承多个Qt类,只要他们已经在C声明为Q_DECLARE_INTERFACE。所以,QPyTextObject没有在PyQt5中实现。

QSet

PyQt4,套装在Python中的V2和V3一组Python列表实现。在PyQt5套装总是作为一个集实现。

pyuic5

pyuic5不支持pyqt3——包装国旗pyuic4。

pyr5

pyr5不支持-PY2和-PY3国旗pyr4。输出pyr5兼容所有版本的PythonPython26入手。

多重继承

不像PyQt4PyQt5类实现多重继承,合作。在其他的话总是做PyQt5类下面的Python代码在等效V3__init__方法(如kwds是一个未使用的关键词参数字典):

super()__init__(kwds)

这意味着,那些未使用的关键字的参数传递给__init__任何mixin类的方法。这些混合类必须合作,即必须如果他们有自己做一个类似的电话__init__实现。

当使用多重继承PyQt4是常见的电话__init__的超类方法明确,例如:

classMyQObject(QObject,MyMixin):

def__init__(self,parent,mixin_arg):

QObject__init__(self,parent)

MyMixin__init__(self,mixin_arg)

#Otherinitialisation

在上述将导致PyQt5mymixin__init__。被称为两。而要实现:

classMyQObject(QObject,MyMixin):

def__init__(self,kwds):

super()__init__(kwds)

#Otherinitialisation

请注意,如果没有其他的初始化做那么__init__方法不需要。

混合类应实施如下:

classMyMixin:

def__init__(self,mixin_arg,kwds):

super()__init__(kwds)

#Otherinitialisation

1、Kivy

Kivy是一个开源工具包能够让使用相同源代码创建的程序能跨平台运行。它主要关注创新型用户界面开发,如:多点触应用程序。Kivy还提供了一个多点触摸鼠标模拟器。当前支持的平台包括:Linux、windows、Mac OS X和Android。

Kviy拥有能够处理动画、缓存、手势、绘图等功能。它还内置许多用户界面控件如:按钮、摄影机、表格、Slider和树形控件等。

2、Flexx

Flexx是一个纯Python工具包,用来创建图形化界面应用程序。其使用web技术进行界面的渲染。你可以用Flexx来创建桌面应用,同时也可以导出一个应用到独立的HTML文档。因为使用纯Python开发,所以Flexx是跨平台的。

3、PyQt

PyQt是Qt库的Python版本。PyQt3支持Qt1到Qt3PyQt4支持Qt4它的首次发布也是在1998年,但是当时它叫PyKDE,因为开始的时候SIP和PyQt没有公开。PyQt是用SIP写的,PyQt提供GPL版和商业版。

4、wxPython

wxPython是Python语言的一套优秀的GUI图形库,允许Python程序员很方便的创建完整的、功能健全的GUI用户界面。wxPython是作为优秀的跨平台GUI库wxWidgets的Python封装和Python模块的方式提供给用户的。

就如同Python和wxWidgets一样,wxPython也是一款开源软件,并且具有非常优秀的跨平台能力,能够运行在32位windows、绝大多数的Unix或类Unix系统、Macintosh OS X上。

5、Tkinter

Tkinter是TK图形用户界面工具包标准的Python接口。TK是一个轻量级的跨平台图形用户界面开发工具。Tk和Tkinter可以运行在大多数的Unix平台、windows和Macintosh系统。

6、PyGTK

PyGTK让你用Python轻松创建具有图形用户界面的程序,底层的GTK+提供了各式的可视元素和功能,如果需要,你能开发在GNOME桌面系统运行的功能完整的软件。PyGTK真正具有跨平台性,它能不加修改地,稳定运行各种 *** 作系统之上。除了简单易用和快速的原型开发能力外,PyGTK还有一流的处理本地化语言的独特功能。

了解更多python知识,推荐选择老男孩教育。

那是因为你没有加:@QtCorepyqtSlot()

------

@QtCorepyqtSlot()

def on_btnOpen_clicked(self):

f = LoginForm(self)

fexec_()

以上就是关于pyqt4pyqt5哪个好用_pyqt5使用全部的内容,包括:pyqt4pyqt5哪个好用_pyqt5使用、郁闷于Python GUI开发,有没有好的框架、PyQt程序 为什么执行两次等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10129814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存