2014-10-12 2 views
1

원래 Python 2.7을 대상으로 한 Python 3.4에서 PyQt 파일을 사용하려고합니다. 나는 2.7을 설치하지 않았지만 원래 코드가 작동했다고 믿는다.PyQt4 - QString 객체에 'isEmpty'속성이 없습니다.

제가 보는 오류는 QInputDialog.getItem에서 반환 된 strVal에 :

문서에서
import random, sys, queue, serial, glob, os, csv, time 
import PyQt4.Qwt5  as Qwt 
from PyQt4.QtCore import * 
from PyQt4.QtGui import * 

... 

strVal , ok = QInputDialog.getItem(self, 'Select a port', 
    'Serial port:', ports, 0, False) 

if ok and not strVal.isEmpty(): 
    self.portname.setText(strVal)    

, QInputDialog.getItemQString (단지 문자열)을 반환해야하고, QString 객체는 속성 .isEmpty() 있습니다.

아니요 .isEmpty() 속성을 얻었으므로 QString을 가져 오지 않았습니까?

+0

가능한 중복 할 수있는 [파이썬 3.2과 Qt를 사이에 호환이되지?] (http://stackoverflow.com/questions/8307985/incompatibility-between-python-3- 2 및 Qt) – ekhumoro

답변

1

반환 유형은 pyqt4 ("pyside")의 "API # 2"구현 이후 QString이 아닌 일반 파이썬 문자열입니다. 빈 문자열이 falsy 간주되기 때문에, 당신의

if ok and strVal: 
     self.portname.setText(strVal)   
+0

API # 1, API # 2 및 PySide에 대한 추가 정보 : http://spyder-ide.blogspot.com/2011/06/pyqt-api-1-pyqt-api-2-and- pyside.html – goetzc