pyQT5에서 첫 번째 GUI를 구축 중이며 Python 프로그래밍이 처음이다.pyqtsignal을 사용하여 하나의 Qthread에서 다른 Qthread로 변수 이동
하나의 Qthread에서 변수 세트를 사용하고 다른 변수에서 사용하려고합니다. 나는 그 pyqtsignal 그것을 할 방법이라고 생각했습니다. 그러나 나는 그것을 작동시킬 수 없다.
class GetCurrentSpeed(QThread):
gpsLatSig = pyqtSignal(str)
def __init__(self):
QThread.__init__(self)
def __del__(self):
self.wait()
def run(self):
while True:
####Print a value in lon and lat so that its never empty
lon = "18"
lat = "59"
###Get Current Latitude and Longitude
if report['class'] == 'TPV':
if hasattr(report, 'lat'):
lat = (str(report.lat))
self.gpsLatSig.emit(lat)
else:
lat = "59"
print("No GPS Lock")
self.gpsLatSig.emit(lat)
class PosSignals(QObject):
GetGps = GetCurrentSpeed()
def connectsig(self):
self.GetGps.gpsLatSig[str].connect(self.handle_string)
@pyqtSlot(str)
def handle_string(self, text):
print text
class OverPassApi(QThread):
GetGps = GetCurrentSpeed()
def __init__(self):
QThread.__init__(self)
self.b = PosSignals()
def __del__(self):
self.wait()
def run(self):
while True:
self.b.connectsig()
print b.handle_string()
api = overpy.Overpass()
result = api.query("""<osm-script>
<query type="way">
<around lat="%s" lon="%s" radius="30"/>
<has-kv k="name" v=""/>
</query>
<print/>
</osm-script>""" % (b.handle_string, 18))
이것은 프로그램의 일부일 뿐이므로이 문제를 해결하기 위해 열심히 노력한 결과로 다른 오류가있을 수 있습니다.
@pyqtSlot(str)
def handle_string(text):
print text
때 :
내 문제는 내가 출력 내가 핸들 함수에서 텍스트를 인쇄 할 때 내가 좋아하는 자신을 제거 할 때 "< 주요 .PosSignals가> 0x72f0c210에 반대"를 얻을 수 있다는 것입니다 나는 자기 자신을 유지한다. print b.handle_string()에 인자를 제공 할 필요가있다. 그런 다음 ofcourse는 내가 추가 한 인자만을 출력한다. 및 클래스 OverPassApi (QThread)에서 사용하는 : 당신은 단순히 handle_string
에 대한 self
인수를 잊어처럼