python gui(三)自定義singal

這個時候就需要我們自定義一個singal,當耗時任務執行完畢後激活singal,通過相應的槽函數來刷新界面或者其他我們想要的操作。

先拿我的gui舉例,我是想同時開始四個線程,然後對應的線程結束後各自更新界面上對應的圖像區域

from PyQt5.QtCore import pyqtSignal
from PyQt5.QtWidgets import *
import sys
class Deep(QWidget,DP.Ui_Form):
#自定義singal
signal1 = pyqtSignal()
signal2 = pyqtSignal()
signal3 = pyqtSignal()
signal4 = pyqtSignal()
signal5 = pyqtSignal()
signal6 = pyqtSignal()
signal7 = pyqtSignal()
signal8 = pyqtSignal()
signal9 = pyqtSignal()
def __init__(self):
QWidget.__init__(self)
DP.Ui_Form.__init__(self)
self.setupUi(self)
self.evaluation_list=[]
self.state=0
#關聯自定義singal和自定義槽函數
self.signal1.connect(self.signalcall1)
self.signal2.connect(self.signalcall2)
self.signal3.connect(self.signalcall3)
self.signal4.connect(self.signalcall4)
self.signal5.connect(self.signalcall)
self.signal6.connect(self.signalcall)
self.signal7.connect(self.signalcall)
self.signal8.connect(self.signalcall)
self.signal9.connect(self.signalcall5)
self.pushButton_data.clicked.connect(self.showdialog)
self.pushButton_apply.clicked.connect(self.applythread)
def applythread(self):
#四個子線程
ta1= threading.Thread(target=self.startapply1)
ta1.start()
ta2 = threading.Thread(target=self.startapply2)
ta2.start()
ta3 = threading.Thread(target=self.startapply3)
ta3.start()
ta4 = threading.Thread(target=self.startapply4)
ta4.start()
def startapply1(self):
#略去若幹耗時任務代碼
self.signal1.emit()
def signalcall1(self):
#界面圖更新

发表回复

相关推荐

香港公司必备知识 | 3分钟了解商业登记证

根据香港《商业登记条例》(第310章)的规定,任何在香港经营业务的人士,都需要在公司开业之后的一个月内,以书面通知向税局 ...

· 4分钟前

被聯合抵制!四川大學走到今天這一步,純屬自找的

“落實立德樹人根本任務有差距,思想政治工作不夠到位,師德師風建設不夠紮實,加強學科建設不夠有力。”“落實全面從嚴治黨兩個...

· 13分钟前

小户型福利,7款迷你衣帽间设计方案,超实用!

其实在心底, 每个女生都希望有一间属于自己的衣帽间(包括丽酱在内)。 我们在很多影视剧里都看过这样梦幻敞亮的衣帽间,简 ...

· 13分钟前

直流電機和交流電機有什麼不同

1、首要兩者的外部供電不同,直流電機運用直流電做為電源;而交流電機則是運用交流電做為電源。2、從結構上說,前者的原理相...

· 15分钟前

转帖 欲加之罪,何患无辞–袁崇焕十二宗罪辨析

这是《袁崇焕之孤城》第二部《孤忠》后记之二(已在起点首发),看到凤凰网“袁崇焕是怎样走上神坛的?”等几组专稿以及起点中 ...

· 16分钟前

Copyright 2015-2025 www.icpchaxun.com ©All Rights Reserved.