##
## step 1: Define thread class
## step 2: Call 'emit' to send notify+data to Main thread
## step 3: Connect event and method
## step 4: Implement method
from time import sleep
from PyQt4 import QtCore
class ParentThread(QtCore.QThread):
def __init__(self):
QtCore.QThread.__init__(self)
self.exiting = False
def __del__(self):
self.exiting = True # used for exit in whilie loop.
self.wait()
class ChildThread(ParentThread):
    def __init__(self):
        ParentThread.__init__(self)
    def run(self): # this method does not use loop code, it run once.
        # get server version data
        conn = httplib.HTTPConnection("webserveraddress")
        conn.request("GET", "/data.htm")
        connResponse = conn.getresponse()  # reason, status
        resData = connResponse.read()
        #send message + event
        # resdata is passed as parameter of onComplete
        self.emit( QtCore.SIGNAL('onComplete(QString)') , resData)  
class MainClass:
    def __init__(self, parent=None):    
        self.childThread= ChildThread()
       #connect event
        self.connect( self.childThread, QtCore.SIGNAL('onComplete(QString)'), self.onComplete)
        #start Thread
        self.versionThread.start()  
   def onComplete(self, resData):
        print resData
댓글 없음:
댓글 쓰기