Pregunta

>>> 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 Referencia de clase QString

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

¿Fue útil?

Solución

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

Otros consejos

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 ay desde una cadena de Python. Además, ninguno se convierte en un QString nulo. Sin embargo, un QString nulo se convierte en una cadena de Python vacía (y no en ninguna). (Esto se debe a que Qt a menudo devuelve un QString nulo cuando probablemente debería devolver un QString vacío).

     

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

     

La clase QStringList se implementa como un tipo mapeado que se convierte automáticamente ay 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 usar 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, puede salirse con la suya con este simple truco.

Depende de su declaración de importación.

Si escribes

from PyQt4 import QtGui, QtCore

debe llamar a QString con

yourstr = QtCore.QString('foo')

Creo que has escrito esto:

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

No se recomienda realmente, pero debe llamar a String con:

yourstr = QString('foo')
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top