PyQt有两个不同的接口:旧的和新的。默认情况下,在Python2中获取旧的API,在Python3中获取新的API。是否可以在Python2中启用新的PyQt API?多么?
发布于 2011-06-05 01:16:34
也许您可以尝试使用sip.setapi。文档中的一个简单示例:
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发布于 2011-12-15 09:04:35
来自this reddit comment,
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(...although我会推荐from PyQt4 import QtCore etc,而不是import *)
发布于 2011-10-17 04:02:42
从Riverbank site看“不兼容的apis”
PyQt为多个不兼容的API提供了有限的支持,并允许应用程序在运行时在这些API之间进行选择。例如,应用程序可以选择是将QString实现为Python类型,还是自动转换为Python对象或Python字符串对象,或从Python对象或Python对象自动转换为Python。
此功能允许开发人员决定如何管理从旧的已弃用API到新的不兼容API的过渡。
一旦设置,版本号就不能更改。
例如,以下代码将禁用QString:
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()目前实现的接口如下:
https://stackoverflow.com/questions/6238193
复制相似问题