2010-08-18 5 views
1

Mon développement eviroment:AttributeError: objet 'module' n'a pas d'attribut 'QtString'

os: windows xp

python: python-3.1.2.msi

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

Code:

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

Il me montrent toujours

in 'module'

s = QtCore.QtString()

AttributeError: 'module' object has no attribute 'QtString'

I chaged code:

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

Ensuite, il me montrent toujours comme ça:

in 'module'

s = QtString()

NameError: name 'QtString' is not defined

Que dois-je faire?

+2

Il devrait être' QString' – sje397

Répondre

4

La question est expliquée ici http://inputvalidation.blogspot.com/2010/10/python3-pyqt4-and-missing-qstring.html

La raison pour laquelle vous ne pouviez pas charger QString est qu'il manque de PyQt4 (peut-être plus tôt, qui sait). Puisque Py3k, par opposition à Py2k, supporte Unicode par défaut, il n'y a aucun besoin dans cette classe.

Au lieu de QString, pour des raisons de compatibilité, vous devez utiliser cet extrait quelque part autour de vos import « s:

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

Merci beaucoup! –

2

Voulez-vous dire QString au lieu de QtString?

(vous pouvez faire help(QtCore) dans l'interpréteur python et rechercher string)

+0

Pour ajouter: La règle de base est 'Qt-' pour modules et 'Q-' pour les classes. – delnan

+0

Merci! J'aide (QtCore) et trouve qu'il n'y a pas QtString mais QString. J'ai donc remplacé QtString par QString. Mais il me montre toujours: dans s = QtCore.QString() AttributeError: objet 'module' n'a pas d'attribut 'QString' dans s = QString() NameError: le nom 'QString' n'est pas défini Pourquoi? –

+0

à partir de PyQt4.QtGui import *; à partir de PyQt4.QtCore import *; s = QString() semble fonctionner pour moi. Assurez-vous de l'exécuter sur une instance d'interpréteur Python «fraîche». –

Questions connexes