PyQt:Python 2的新API

Joh*_*åde 6 python pyqt

PyQt有两种不同的API:旧的和新的.默认情况下,您可以使用Python 2获取旧API,使用Python 3获取新API.是否可以使用Python 2启用新的PyQt API?怎么样?

dbr*_*dbr 13

这个reddit评论,

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
Run Code Online (Sandbox Code Playgroud)

(...虽然我会建议from PyQt4 import QtCore等而不是import *)

  • @flyingsheep这已经晚了,但你应该从QtWebkit导入QWebSettings`.明确地导入你需要的东西有助于静态检查器有一个祷告,跟踪你的命名空间中的内容,并让你不要惊讶地破坏某些东西(从'numpy import*`clobbers`sum``然后你`sum(generator)`no更长的作品) (2认同)

sen*_*rle 9

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

import sip
sip.setapi('QString', 2)
Run Code Online (Sandbox Code Playgroud)

以及支持的API列表:

QDate v1, v2
QDateTime v1, v2
QString v1, v2
QTextStream v1, v2
QTime v1, v2
QUrl v1, v2
QVariant v1, v2
Run Code Online (Sandbox Code Playgroud)