AttributeError: у объекта 'module' нет атрибута 'QtString'

Мое развитие eviroment:

ОС: Windows XP

python: python-3.1.2.msi

pyqt: PyQt-Py3.1-gpl-4.7.4-1.exe

код:

import sys    
from PyQt4 import QtCore, QtGui    
app = QtGui.QApplication(sys.argv)    
s = QtCore.QtString()    
sys.exit(app.exec_())

Это всегда показывает мне

в "модуле"

s = QtCore.QtString ()

AttributeError: у объекта 'module' нет атрибута 'QtString'

Я изменил код:

import sys    
from PyQt4.QtGui import *    
from PyQt4.QtCore import *    
app = QApplication(sys.argv)    
s = QtString()    
sys.exit(app.exec_())

Тогда это всегда показывает мне так:

в "модуле"

s = QtString ()

NameError: имя 'QtString' не определено

что я должен делать?

2 ответа

Решение

Проблема объясняется здесь http://inputvalidation.blogspot.com/2010/10/python3-pyqt4-and-missing-qstring.html

Причина, по которой вы не смогли загрузить QString является то, что он отсутствует в PyQt4 (может быть, раньше, кто знает). Поскольку Py3k, в отличие от Py2k, по умолчанию поддерживает Unicode, в этом классе нет необходимости.

Вместо QString, из соображений совместимости, вы должны использовать этот фрагмент где-то рядом с вашим import"S:

try:
    from PyQt4.QtCore import QString
except ImportError:
    QString = str

Ты имеешь ввиду QString вместо QtString?

(ты можешь сделать help(QtCore) в интерпретаторе Python и искать string)

Другие вопросы по тегам