0
我有一個QMainWindow啓動QThread並等待來自網絡的數據。在接收任何數據時更新UI。pyqt主窗口從線程接收數據後不斷崩潰
問題是:它有時會崩潰。有時候不會,我只要開始它並等待數據。
這裏是線程類:
class ListenerThread(QtCore.QThread):
def __init__(self,host,port,window):
super(ListenerThread,self).__init__(window)
self.host = host
self.port = port
self.window = window
def run(self):
soc = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
soc.bind((self.host, self.port))
while True:
data, address = soc.recvfrom(9999)
print address
if data:
dataList = data.split("\\")
company = dataList[1]
projectName = dataList[2]
assets = dataList[3]
assetType = dataList[4]
assetName = dataList[5]
# parent here is the main window(the main thread) : updateCombo is a function that updates combo box inside the main window
self.parent().updateCombo(self.window.comboBoxCompany,company)
self.parent().updateCombo(self.window.dropDownProjects,projectName)
self.parent().select(assets,assetName)
爲什麼會這樣?請記住,主窗口本身工作正常。
函數(updateCombo)也正常工作(當你從它的類調用它)。
但我發送數據時主窗口不斷崩潰!任何想法爲什麼?
現在工作正常。你是對的 。我不應該使用self.parent(),信號是關鍵,好工作! –