首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyQt: Python2的新API

PyQt: Python2的新API
EN

Stack Overflow用户
提问于 2011-06-05 01:12:20
回答 3查看 5.1K关注 0票数 6

PyQt有两个不同的接口:旧的和新的。默认情况下,在Python2中获取旧的API,在Python3中获取新的API。是否可以在Python2中启用新的PyQt API?多么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-06-05 01:16:34

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

代码语言:javascript
复制
import sip
sip.setapi('QString', 2)

以及支持的API列表:

代码语言:javascript
复制
QDate v1, v2
QDateTime v1, v2
QString v1, v2
QTextStream v1, v2
QTime v1, v2
QUrl v1, v2
QVariant v1, v2
票数 9
EN

Stack Overflow用户

发布于 2011-12-15 09:04:35

来自this reddit comment

代码语言:javascript
复制
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 *)

票数 13
EN

Stack Overflow用户

发布于 2011-10-17 04:02:42

从Riverbank site看“不兼容的apis”

PyQt为多个不兼容的API提供了有限的支持,并允许应用程序在运行时在这些API之间进行选择。例如,应用程序可以选择是将QString实现为Python类型,还是自动转换为Python对象或Python字符串对象,或从Python对象或Python对象自动转换为Python。

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

一旦设置,版本号就不能更改。

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

代码语言:javascript
复制
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()

目前实现的接口如下:

  • QDate v1,v2
  • QDateTime v1,v2
  • QString v1,
  • v1,v2
  • ,<代码>H117#,v2<代码>H218<代码>H119QVariant,v2<代码>H220<代码>F221
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6238193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档