定義了work類:
在啟東等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都做網(wǎng)站、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,網(wǎng)絡(luò)營銷推廣,外貿(mào)網(wǎng)站制作,啟東網(wǎng)站建設(shè)費(fèi)用合理。class AddWork(QObject):
addSignal = pyqtSignal(str)
def __init__(self, parentItem, type, url=None):
super(AddWork, self).__init__()
# super().__init__()
self.type = type
self.parentItem = parentItem
self.scy = scrpy()
self.url = url
def work(self):
print('1')
if self.type == 'top':
data = self.scy.getIndex()
self.addSignal.emit('正在讀取目錄數(shù)據(jù)')
elif self.url is not None:
if self.type == 'second':
data = self.scy.getChildPage(self.url)
self.addSignal.emit('正在讀取次級目錄數(shù)據(jù)')
elif self.type == 'three':
data = self.scy.getMagzineList(self.url)
self.addSignal.emit('正在讀取文章目錄數(shù)據(jù)')
else:
self.addSignal.emit('傳入數(shù)據(jù)不正確,請修改后重試')
return
for item in data:
self.addSignal.emit('正在在顯示目錄插入數(shù)據(jù)')
node = QTreeWidgetItem(self.parentItem)
node.setText(0, item[0])
node.setText(1, item[1])
self.addSignal.emit('顯示完成')
在主程序中使用:
def ButtonReadData(self):
if self.rootNode.childCount() != 0:
return
worker = AddWork(self.rootNode, 'top')
worker.addSignal.connect(self.ShowLog)
thread = QThread()
print('ready start button thread')
thread.start()
print('end start button thread')
worker.moveToThread(thread)
thread.started.connect(worker.work)
但是在點(diǎn)擊按鈕之后,沒有反應(yīng),后經(jīng)過debug,發(fā)現(xiàn)能運(yùn)行到線程中,但是該運(yùn)行線程的run函數(shù)的時候就沒動靜了。
我懷疑是在按鈕函數(shù)運(yùn)行完后將線程變量被銷毀了?后經(jīng)過實(shí)驗(yàn),添加下面兩行代碼即可正常運(yùn)行,即將work和線程添加到一個全局的列表中保存:
self.threadList.append(thread)
self.workers.append(worker)
總的按鈕事件代碼為:
def ButtonReadData(self):
if self.rootNode.childCount() != 0:
return
worker = AddWork(self.rootNode, 'top')
worker.addSignal.connect(self.ShowLog)
thread = QThread()
print('ready start button thread')
thread.start()
print('end start button thread')
worker.moveToThread(thread)
thread.started.connect(worker.work)
self.threadList.append(thread)
self.workers.append(worker)
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
當(dāng)前標(biāo)題:PyQt5movetothread進(jìn)程啟動失效解決辦法-創(chuàng)新互聯(lián)
轉(zhuǎn)載來源:http://www.rwnh.cn/article22/jdijc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)頁設(shè)計公司、外貿(mào)網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)、軟件開發(fā)、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容