Python3 внес много несовместимых изменений, чтобы «очистить» язык, и, в некоторой степени, PyQt сделал то же самое, представив «более pythonic» версии некоторых API.Но эти разные версии API могут быть выбраны в зависимости от класса для Python2 и Python3, поэтому единственное реальное отличие - это значения по умолчанию, выбранные для каждой версии Python.
В Python2версия API по умолчанию для QString
- "v1", которая реализует его как тип Python;в Python3 по умолчанию используется значение «v2», которое автоматически преобразуется в соответствующий строковый объект Python и обратно из него.
Версию API можно выбрать с помощью функции setapi
из пакета sip
.Поэтому, чтобы продолжить использование класса QString
в вашем приложении, просто убедитесь, что соответствующая версия установлена перед первым импортом модулей PyQt:
import sip
sip.setapi('QString', 1)
from PyQt4 import QtCore, QtGui
try:
_fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
_fromUtf8 = lambda s: s
Для получения подробной информации обо всех API, которые могут быть установлены таким образомсм. здесь .