pyqt多线程下载图片,UI界面卡住

创建一个Qthead类,专门用来进行多线程下载图片

class ImageDownloader(QThread,QObject):
    setin = pyqtSignal(str)
    setout = pyqtSignal()
    def __init__(self, target_url):
        super().__init__()
        self.target_url = target_url
        self.showinfo = ''

    def run(self):
    	# 发信号给UI,UI进行刷新
        self.setin.emit(self.showinfo)
        max_threads = os.cpu_count()
        print(max_threads)
        # 创建线程池,多线程下载数据
        with ThreadPoolExecutor(max_workers=(max_threads / 2)) as executor:
            for icon_info in url_info_list:
                executor.submit(self.download_one_pic, icon_info)
		# 线程结束,发送信号给UI,通知已经结束了
        self.setout.emit()

界面类调用Qthread 类的时候,得用界面类的成员变量,不能使用临时变量

        # 开启qt  线程
        self.work = ImageDownloader(target_url)
        self.work.setin.connect(self.icon_tab_refersh)
        self.work.setout.connect(self.icon_tab_finish_refersh)
        self.work.start()

  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值