PYQT4에서 QSTRING을 만드는 방법은 무엇입니까?
-
05-07-2019 - |
문제
>>> 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 클래스는 구현되지 않습니다.
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')