当前位置: 首页 > news >正文

PyQt6实例_批量下载pdf工具_主线程停止线程池

目录

前置:

代码:

视频:


前置:

1 本系列将以 “PyQt6实例_批量下载pdf工具”开头,放在 【PyQt6实例】 专栏
2 本系列涉及到的PyQt6知识点:
线程池:QThreadPool,QRunnable;
信号与槽:pyqtSignal,pyqtSlot;
界面:QTextEdit,QLabel,QLineText,QPushButton,QMainWindow,QWidget;
布局:QHBoxLayout,QVBoxLayout;
弹框:QFileDialog,QMessageBox。
3 本系列后续会在B站录制视频,到时会在文末贴出链接。本人还是建议先看博文,不懂的再看视频,这样效率高,节约时间。

代码:

    def stop_btn_clicked(self):
        answer = QMessageBox.question(
            self,
            '确认停止?',
            '确定要停止任务么?',
            QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
        )
        if answer == QMessageBox.StandardButton.Yes:
            self.force_stop()
            pass
        else:
            return
        pass
    def force_stop(self):
        for item in self.runner_list:
            item.stop_run()
        pass
    def closeEvent(self, a0):
        answer = QMessageBox.question(
            self,
            '确认退出?',
            '退出将中断操作,确定要退出么?',
            QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No
        )
        if answer == QMessageBox.StandardButton.Yes:
            if not self.this_time_start_yeah:
                a0.accept()
            else:
                if self.thread_finished_count == self.max_thread_count:
                    a0.accept()
                else:
                    QMessageBox.information(
                        self,
                        '提示',
                        '正在存储必要信息为下次断点续传做准备,需要等几秒后关闭',
                        QMessageBox.StandardButton.Ok
                    )
                    a0.ignore()
                    self.waitting_close = True
                    self.force_stop()
                    pass
            pass
        else:
            a0.ignore()
            pass
        pass

视频:

https://www.bilibili.com/video/BV1AuZPYiEd9/

http://www.dtcms.com/a/98487.html

相关文章:

  • PERL开发环境搭建>>Windows,Linux,Mac OS
  • 【JavaScript】九、JS基础练习
  • torch.tensor 用法
  • OpenAI API - 快速入门开发
  • 链表(C++)
  • WPF 自定义行为AssociatedObject详解
  • 全包圆玛奇朵样板间亮相,极简咖啡风引领家装新潮流
  • 程序化广告行业(39/89):广告投放的数据分析与优化秘籍
  • 腾讯系AI应用,可以生视频,3D模型...
  • 北森测评的经验
  • 二层框架组合实验
  • linux压缩指令
  • 数据结构与算法:算法分析
  • 轮询和长轮询
  • html5基于Canvas的动态时钟实现详解
  • 论文内可解释性分析
  • 《ZooKeeper Zab协议深度剖析:构建高可用分布式系统的基石》
  • 0101-vite创建react_ts-环境准备-仿低代码平台项目
  • latex笔记
  • 复现文献中的三维重建图像生成,包括训练、推理和可视化
  • StarRocks 存算分离在京东物流的落地实践
  • GOC L2 第四课模运算和周期
  • 软件工程之需求工程(需求获取、分析、验证)
  • Unity顶点优化:UV Splits与Smoothing Splits消除技巧
  • 基于 Python 深度学习 lstm 算法的电影评论情感分析可视化系统(2.0 系统全新升级,已获高分通过)
  • CUDA专题3:为什么GPU能改变计算?深度剖析架构、CUDA®与可扩展编程
  • 软件信息安全性测试工具有哪些?安全性测试报告如何获取?
  • C++ 类型转换
  • java基础以及内存图
  • presto任务优化参数