Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PyQt:使用Python 2的新API_Python_Pyqt - Fatal编程技术网

PyQt:使用Python 2的新API

PyQt:使用Python 2的新API,python,pyqt,Python,Pyqt,PyQt有两种不同的API:旧API和新API。 默认情况下,Python2使用旧API,Python3使用新API。 是否可以在Python2上启用新的PyQTAPI?如何使用?也许您可以尝试使用。文档中的一个简单示例: import sip sip.setapi('QString', 2) 以及受支持的API列表: QDate v1, v2 QDateTime v1, v2 QString v1, v2 QTextStream v1, v2 QTime v1, v2 QUrl v1, v2

PyQt有两种不同的API:旧API和新API。 默认情况下,Python2使用旧API,Python3使用新API。
是否可以在Python2上启用新的PyQTAPI?如何使用?

也许您可以尝试使用。文档中的一个简单示例:

import sip
sip.setapi('QString', 2)
以及受支持的API列表:

QDate v1, v2
QDateTime v1, v2
QString v1, v2
QTextStream v1, v2
QTime v1, v2
QUrl v1, v2
QVariant v1, v2
看看Riverbank的“不兼容API” PyQt为多个不兼容的API提供了有限的支持,并且应用程序能够在运行时在它们之间进行选择。例如,应用程序可以选择是将QString实现为Python类型,还是自动转换为Python v2 unicode对象或Python v3字符串对象

此功能允许开发人员决定如何管理从旧的已弃用API到新的不兼容API的转换

以这种方式选择的每个API都有一个名称和一系列版本号。应用程序调用sip.setapi()来设置特定API的版本号。必须在导入实现API的任何模块之前进行此调用。一旦设置,版本号就无法更改。如果未设置,则API将使用其默认版本

例如,以下代码将禁用QString的使用:

目前正在实施以下API:

  • qdatev1,v2
  • QDateTime v1,v2
  • QString v1,v2
  • QTextStream v1、v2
  • QTime v1、v2
  • QUrl v1,v2
  • qv1、v2变型


(…虽然我建议从PyQt4导入QtCore
等而不是导入*

你的意思是使用像QPushButton这样的新样式连接。单击。连接(f)?@utdemir:也是。这解决了部分问题(QString、QVariant等)我可以用PyQt和Python2获得新的信号和连接API吗?新的信号和连接API在Python2中默认启用。您可以从connect(foo,SIGNAL('clicked'),bar)切换到foo.clicked.connect(bar),甚至可以将它们交错-它们共存得很好。这现在是一个死链接;我能够从dbr引用reddit链接的帖子中得到我所需要的?它会产生类似于
QtWebKit.QWebSettings.globalSettings().setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled,True)
的代码,如果没有
QtWebKit,这已经够可怕的了。
@flyingsheep这太晚了,但您应该从QtWebKit导入QWebSettings
执行
。显式导入所需内容有助于静态检查器跟踪命名空间中的内容,并防止您意外地破坏某些内容(例如numpy import*
clobbers
sum
,然后您将
sum(生成器)
不再工作)
import sip
sip.setapi('QString', 2)

from PyQt4 import QtCore

# This will raise an attribute exception because QString is only wrapped
# in version 1 of the API.
s = QtCore.QString()
import sip
API_NAMES = ["QDate", "QDateTime", "QString", "QTextStream", "QTime", "QUrl", "QVariant"]
API_VERSION = 2
for name in API_NAMES:
    sip.setapi(name, API_VERSION)
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtSvg import *
from PyQt4.QtCore import pyqtSignal as Signal
from PyQt4.QtCore import pyqtSlot as Slot