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

一 网站开发背景/企业网站托管

一 网站开发背景,企业网站托管,给个网址2021年能看的,上海网页设计公司山东济南兴田德润简介目录 前置: 代码: 视频: 前置: 1 本系列将以 “PyQt6实例_批量下载pdf工具”开头,放在 【PyQt6实例】 专栏 2 本系列涉及到的PyQt6知识点: 线程池:QThreadPool,QRunnable; 信号与…

目录

前置:

代码:

视频:


前置:

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

代码:

    def execute_btn_clicked(self):txt_dir = self.txtdir_lineedit.text()if txt_dir is None or len(txt_dir.strip())<=0:self.information_dialog('请先选择txt所在目录')returntxt_list = os.listdir(txt_dir)if len(txt_list)<=0:self.information_dialog('txt所在目录为空')returnpdf_dir = self.savedir_lineedit.text()if pdf_dir is None or len(pdf_dir.strip())<=0:self.information_dialog('请设置pdf存储目录')returnanswer = QMessageBox.question(self,'确认启动?',f'如果确定启动,程序将把任务分成 {self.max_thread_count} 个线程执行。执行过程将占用设备资源。',QMessageBox.StandardButton.Yes | QMessageBox.StandardButton.No)if answer == QMessageBox.StandardButton.Yes:self.this_time_start_yeah = Trueself.thread_finished_count = 0self.txtdir_lineedit.setDisabled(True)self.savedir_lineedit.setDisabled(True)self.choicedir_btn.setDisabled(True)self.savedir_btn.setDisabled(True)self.execute_btn.setDisabled(True)if self.last_time_executed_tickers is not None:for one in self.last_time_executed_tickers:txt_list.remove(f'{one}.txt')pass# 分发任务interval = len(txt_list)//self.max_thread_countif interval == 0:self.max_thread_count = 1self.insert_executelog('需要执行的内容很少,只开启一个线程')passfor i in range(0,self.max_thread_count):if i == self.max_thread_count-1:node_txt_list = txt_list[i*interval:]else:node_txt_list = txt_list[i*interval:(i+1)*interval]task_data = {'txt_dir':txt_dir,'pdf_dir':pdf_dir,'txt_list':node_txt_list,'temp_dict':self.last_time_data}worker = Worker(i,task_data)worker.signals.result.connect(self.thread_result_fn)worker.signals.finished.connect(self.thread_finished_fn)worker.signals.error.connect(self.thread_error_fn)self.runner_list.append(worker)self.insert_otherlog(f'线程 {i} 启动。')self.threadpool.start(worker)passelse:returnpassdef thread_result_fn(self,res:tuple):# (thread_num,stoped,ticker,executed_url_list,excuted_ticker_list)# (thread_num,success,None,None,excuted_ticker_list)thread_num = res[0]status = res[1]if status == 'stoped':self.insert_otherlog(f'线程 {thread_num} 停止.')if res[2] is not None:self.pre_last_time_data[res[2]] = res[3]self.pre_last_time_executed_tickers.extend(res[4])passelse:self.insert_otherlog(f'线程 {thread_num} 正常结束。')passdef thread_finished_fn(self,res:int):self.thread_finished_count += 1res_str = f'线程 {res} 结束.'self.insert_otherlog(res_str)if self.thread_finished_count == self.max_thread_count:temp_str = '上次执行正常结束'if self.pre_last_time_data:temp_str = '上次被强制停止'with open(os.path.join(basedir,'data','temp.json'),'w',encoding='utf-8') as fw:json.dump(self.pre_last_time_data,fw)passif len(self.pre_last_time_executed_tickers)>0:temp_str = '上次被强制停止'tickers_str = '\n'.join(self.pre_last_time_executed_tickers)with open(os.path.join(basedir,'data','executed.txt'),'w',encoding='utf-8') as fw:fw.write(tickers_str)passpre_str = f"{self.txtdir_lineedit.text()};{self.savedir_lineedit.text()};{temp_str}"with open(os.path.join(basedir,'data','params.txt'),'w',encoding='utf-8') as fw:fw.write(pre_str)if self.waitting_close:self.close()else:self.txtdir_lineedit.setDisabled(False)self.savedir_lineedit.setDisabled(False)self.choicedir_btn.setDisabled(False)self.savedir_btn.setDisabled(False)self.execute_btn.setDisabled(False)self.infomation_dialog('所有工作线程停止完毕')passpassdef thread_error_fn(self,res:tuple):error_str = f"线程 {res[0]} 报错。报错类型:{res[1]}。值:{res[2]}。异常栈:{res[3]}"self.insert_executelog(error_str)pass

视频:

https://www.bilibili.com/video/BV1zeZcYQEax/
https://www.bilibili.com/video/BV1BeZcYQEZq/
https://www.bilibili.com/video/BV1VSZAYJEUf/
https://www.bilibili.com/video/BV1KKZPYBEJV/
https://www.bilibili.com/video/BV1KKZPYBEG2/

http://www.whsansanxincailiao.cn/news/31945620.html

相关文章:

  • 天天新品网做网站/googleplaystore
  • 网站渗透案例/浙江新手网络推广
  • 山西网站建设制作推广/信息检索关键词提取方法
  • 装饰行业网站模板/株洲seo
  • 旺苍网站建设/关键词优化好
  • 网站排名推广自己怎么做/最新一周新闻
  • 淮北网站建设/网站seo
  • 新浪云服务器做网站/怎么自己建立网站
  • 推荐做pc端网站/怎么做推广网站
  • 做网站国外访问/天津seo网站管理
  • 深圳房地产信息网官方网站/网站收录查询系统
  • 金融理财网站建设方案/百度一下网页
  • 江阴网络公司做网站/傻瓜式自助建站系统
  • 有赞可以做独立网站吗/企业官网怎么做
  • 成都哪里有做网站建设的/百度平台交易
  • 重庆网上注册公司流程/官网排名优化方案
  • 贸易公司广告网站/php免费开源crm系统
  • 个人备案 做政府网站/如何做网站seo
  • 研创网/seo前景
  • 东莞网站建设seo/seo优化一般包括哪些内容()
  • 网站建设肆金手指排名8/怎么找到精准客户资源
  • 清远市seo广告优化/杭州百度优化
  • 网站建设单位哪家好/十大经典营销案例
  • 手机网站制作公司价钱/做互联网项目怎么推广
  • 做网站程序的步骤/北京seo顾问外包
  • 医院网站建设步骤/线上推广方案怎么写
  • dedecms 做电商网站/qianhu微建站
  • 公司主页网站制作/广州营销型网站
  • 在家做网站维护兼职/百度seo排名报价
  • 网站页面跳转怎么做/今日十大新闻