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

作业3 主题资源网站建设个体可以做几个网站

作业3 主题资源网站建设,个体可以做几个网站,我想学网站建设需要选择什么书,seo外包服务方案使用PyQt5应用程序制作PDF转换成图片的小工具#xff0c;可以导入PDF文档后一键生成对应的PNG图片。 PDF图片转换小工具使用的中间件#xff1a; python版本#xff1a;3.6.8 UI应用版本#xff1a;PyQt5 PDF文件操作非标准库#xff1a;PyPDF2 PNG图片生成库#xff1…使用PyQt5应用程序制作PDF转换成图片的小工具可以导入PDF文档后一键生成对应的PNG图片。 PDF图片转换小工具使用的中间件 python版本3.6.8 UI应用版本PyQt5 PDF文件操作非标准库PyPDF2 PNG图片生成库PyMuPDF pip install PyQt5pip install PyPDF2pip install PyMuPDF1.18.17将需要使用到的python标准库或非标准库全部导入到我们的代码块中进入开发环节。 # Importing all the classes from the PyQt5.QtGui module. from PyQt5.QtGui import *# Importing all the classes from the PyQt5.QtCore module. from PyQt5.QtCore import *# Importing all the classes from the PyQt5.QtWidgets module. from PyQt5.QtWidgets import *# Importing the fitz module. import fitz# Importing the PyPDF2 module. import PyPDF2# Importing the sys module. import sys# Importing the os module. import os# Importing the traceback module. import traceback接下来直接进入正题首先创建名称为PdfToPngUI的python类将UI组件及布局和相关的槽函数都写入到这个类中。 # This class is a widget that contains a button and a text box. When the button is clicked, the text box is populated with # the path to the converted file class PdfToPngUI(QWidget):def __init__(self):A constructor. It is called when an object is created from a class and it allows the class to initialize theattributes of a class.super(PdfToPngUI, self).__init__()self.init_ui()def init_ui(self):This function initializes the UI.self.setWindowTitle(PDF图片转换工具 公众号Python 集中营)self.setWindowIcon(QIcon(analysis.ico))self.resize(600, 400)self.source_pdf_path QLineEdit()self.source_pdf_path.setPlaceholderText(PDF文件路径)self.source_pdf_path.setReadOnly(True)self.source_pdf_btn QPushButton()self.source_pdf_btn.setText(导入)self.source_pdf_btn.clicked.connect(self.source_pdf_btn_click)self.target_png_path QLineEdit()self.target_png_path.setPlaceholderText(目标图片存储路径)self.target_png_path.setReadOnly(True)self.target_png_btn QPushButton()self.target_png_btn.setText(路径)self.target_png_btn.clicked.connect(self.target_png_btn_click)self.start_btn QPushButton()self.start_btn.setText(PDF一键生成PNG图片)self.start_btn.clicked.connect(self.start_btn_click)self.brower QTextBrowser()self.brower.setReadOnly(True)self.brower.setFont(QFont(宋体, 8))self.brower.setPlaceholderText(日志处理过程区域...)self.brower.ensureCursorVisible()grid QGridLayout()grid.addWidget(self.source_pdf_path, 0, 0, 1, 2)grid.addWidget(self.source_pdf_btn, 0, 2, 1, 1)grid.addWidget(self.target_png_path, 1, 0, 1, 2)grid.addWidget(self.target_png_btn, 1, 2, 1, 1)grid.addWidget(self.start_btn, 2, 0, 1, 3)grid.addWidget(self.brower, 3, 0, 1, 3)self.pdf_thread WorkThread(self)self.pdf_thread.message.connect(self.show_message)self.pdf_thread.finished.connect(self.finished)self.setLayout(grid)def show_message(self, text):It shows a message:param text: The text to be displayedcursor self.brower.textCursor()cursor.movePosition(QTextCursor.End)self.brower.append(text)self.brower.setTextCursor(cursor)self.brower.ensureCursorVisible()def source_pdf_btn_click(self):It opens a file dialog box to select the source PDF file.source_pdf_path QFileDialog.getOpenFileName(self, 选取文件, os.getcwd(), PDF File (*.pdf))self.source_pdf_path.setText(source_pdf_path[0])def target_png_btn_click(self):A function that is called when the target_png_btn is clicked.target_png_path QFileDialog.getExistingDirectory(self, 选择文件夹, os.getcwd())self.target_png_path.setText(target_png_path)def start_btn_click(self):A function that is called when the start button is clicked.self.pdf_thread.start()self.start_btn.setEnabled(False)def finished(self, finished):A function that is called when the target_png_btn is clickedif finished is True:self.start_btn.setEnabled(True)通过上面的PdfToPngUI类处理这个时候UI组件及布局和槽函数已经开发完成了应用的页面效果如下。 然后我们开始业务逻辑的开发。这里将业务逻辑使用单独的子线程开发避免和页面的主线程发生阻塞。 创建一个子线程的python类WorkThread并继承自QThread子线程将PDF图片转换的过程写到里面。 # Its a QThread that runs a function in a separate thread class WorkThread(QThread):message pyqtSignal(str)finished pyqtSignal(bool)def __init__(self, parentNone):A constructor that initializes the class.:param parent: The parent widgetsuper(WorkThread, self).__init__(parent)self.working Trueself.parent parentdef __del__(self):A destructor. It is called when the object is destroyed.self.working Falsedef run(self):PDF转换图片的业务函数。try:source_pdf_path self.parent.source_pdf_path.text().strip()target_png_path self.parent.target_png_path.text().strip()if source_pdf_path or target_png_path :self.message.emit(来源文件路径或目标存储路径不能为空)self.finished.emit(True)returnself.message.emit(源文件路径{}.format(source_pdf_path))self.message.emit(目标文件路径{}.format(target_png_path))pdf_ fitz.open(source_pdf_path)self.message.emit(成功打开PDF文件对象)reader PyPDF2.PdfFileReader(source_pdf_path)self.message.emit(PDF文件流处理完成)page_num reader.getNumPages()self.message.emit(PDF文件页数读取完成)for n in range(0, page_num):page pdf_.load_page(n)pix_ page.get_pixmap()pix_.save(os.path.join(target_png_path, str(n) .png))self.message.emit(图片保存成功{}.format(os.path.join(target_png_path, str(n) .png)))self.message.emit(PNG图片全部转换完成)self.finished.emit(True)except:traceback.print_exc()self.message.emit(程序运行出现错误请检查参数是否设置正确)self.finished.emit(True)经过上述的UI界面组件以及业务线程的开发功能已经实现了下面使用main函数调起整个应用就OK了。 if __name__ __main__:app QApplication(sys.argv)main PdfToPngUI()main.show()sys.exit(app.exec_())往期精彩 假如有一个专属于python的终端工具那绝对非他莫属 如何解决python读取大数据量文件时造成的内存溢出 python如何完成对 Excel文件的解密后读取
http://www.eeditor.cn/news/125075/

相关文章:

  • 网站功能建设中页面一起来做网站
  • 四川网站建设东阳网站制作
  • 合肥设计网站网站备案 地域
  • 商业网站建设方案房子装修设计图用什么软件
  • 给女友做网站网站设计基本结构
  • 教育品牌加盟网站建设微信公众平台开发者工具
  • 网站建设的关键问题全是图片的网站怎么做seo
  • 企业建网站一般要多少钱wordpress出现两个首页
  • 有什么做家纺的网站电子商务创建网站
  • 黄页网站推广方案莆田专业网站建设公司
  • 建设银行的投诉网站首页网站设计 无锡
  • 网站后台管理要求茶楼 网站
  • 网站推广招商苏州新区网站制作公司
  • 导购网站怎么做渝叶购零售客户电商网站
  • 高埗网站仿做建立网站大概需要多少钱
  • 网站做网络营销广东住房建设部官方网站
  • 怎样给网站加外链管理公司网站的职位
  • 东莞企业网站定制设计百度应用商店下载安装
  • 做铝材哪些网站招聘如何在WordPress部署主题
  • wordpress七牛汉化主题优化火车票
  • 网站虚拟主机管理芜湖建设厅官方网站
  • 网站的论文怎么写汕头澄海有什么好玩的景点
  • 软件公司门户网站模板艺术设计教学资源网站建设标准
  • 微信建设网站哪家好沈阳妇科哪个医院比较专业
  • 贵州建设厅施工员考试网站本墨陈黑做网站有版权
  • 上海公司注册代理的发展seo推广是什么工作
  • 帝国网站模板建设完成显示不正常火车站网站建设方案
  • 深圳建设交易信息网站网站可以不备案吗
  • 网站建设和网站优化的区别网页主题参考
  • 网络营销模式课seo综合查询网站