문제

>>> 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' 

예, 읽었습니다 Qstring 클래스 참조

내가 가져올 수없는 이유 QString ~에서 QtCore, 문서에 지정된대로?

도움이 되었습니까?

해결책

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

다른 팁

Python 3에서 QString은 기본적으로 기본 Python 문자열에 자동으로 매핑됩니다.

QSTRING 클래스는 파이썬 문자열로 자동으로 변환되는 매핑 유형으로 구현됩니다. 또한 없음은 Null QString으로 변환됩니다. 그러나 Null QString은 빈 파이썬 문자열로 변환됩니다 (없음). (QT가 빈 QString을 반환해야 할 때 QT가 종종 Null QString을 반환하기 때문입니다.)

QCHAR 및 QSTRINGREF 클래스는 파이썬 문자열로 자동 변환되는 맵핑 유형으로 구현됩니다.

QStringList 클래스는 문자열의 파이썬 목록에서 자동으로 변환되는 맵핑 유형으로 구현됩니다.

Qlatin1char, Qlatin1string 및 Qstringmatcher 클래스는 구현되지 않습니다.

http://pyqt.sourceforge.net/docs/pyqt4/qstring.html

python3의 pyqt4 4.6+에서 python3 qstring은 존재하지 않으며 일반적인 python3 유니 코드 객체 (문자열 리터럴)를 사용해야합니다. 코드가 Python 2.x 및 Python 3.x에서 작동하도록 다음을 수행 할 수 있도록이를 수행하려면 다음을 수행 할 수 있습니다.

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

유스 케이스에 따라이 간단한 해킹으로 도망 갈 수 있습니다.

가져 오기 명세서에 따라 다릅니다.

당신이 쓰면

from PyQt4 import QtGui, QtCore

Qstring에 전화해야합니다

yourstr = QtCore.QString('foo')

나는 당신이 이것을 썼다고 생각합니다.

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

실제로 권장되지는 않지만 다음과 함께 문자열을 호출해야합니다.

yourstr = QString('foo')
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top