¿Cómo crear QString en PyQt4?

>>> from PyQt4 import QtCore >>> str = QtCore.QString('Hello') AttributeError: 'module' object has no attribute 'QString' >>> QtCore.QString._init_(self) AttributeError: 'module' object has no attribute 'QString' 

Sí, he leído QString Class Reference

¿Por qué no puedo importar QString desde QtCore , como se especifica en los documentos?

 In [1]: from PyQt4 import QtCore In [2]: s = QtCore.QString('foo') In [3]: s Out[3]: PyQt4.QtCore.QString(u'foo') 

En Python 3, QString se asigna automáticamente a la cadena nativa de Python de forma predeterminada:

La clase QString se implementa como un tipo mapeado que se convierte automáticamente hacia y desde una cadena Python. Además, ninguno se convierte en una QString nula. Sin embargo, una QString nula se convierte en una cadena de Python vacía (y no en ninguna). (Esto se debe a que Qt a menudo devuelve una QString nula cuando probablemente debería devolver una QString vacía).

Las clases QChar y QStringRef se implementan como tipos mapeados que se convierten automáticamente hacia y desde cadenas de Python.

La clase QStringList se implementa como un tipo mapeado que se convierte automáticamente hacia y desde las listas de cadenas de Python.

Las clases QLatin1Char, QLatin1String y QStringMatcher no están implementadas.

http://pyqt.sourceforge.net/Docs/PyQt4/qstring.html

Desde PyQt4 4.6+ en Python3 QString no existe y se supone que debe utilizar objetos Unicode de Python3 (literales de cadena). Para hacer esto para que su código funcione tanto en Python 2.x como en Python 3.x, puede hacer lo siguiente:

 try: from PyQt4.QtCore import QString except ImportError: # we are using Python3 so QString is not defined QString = type("") 

Dependiendo de su caso de uso, podría salirse con la suya con este simple truco.

Depende de su statement de importación.

Si tú escribes

 from PyQt4 import QtGui, QtCore 

debes llamar a QString con

 yourstr = QtCore.QString('foo') 

Creo que has escrito esto:

 from PyQt4.QtGui import * from PyQt4.QtCore import * 

No es realmente recomendable, pero deberías llamar a String con:

 yourstr = QString('foo')