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

2017网站备案抽查seo 论坛

2017网站备案抽查,seo 论坛,门户网站有哪些,网站开发 群0. 目录 PyQt学习记录01——加法计算器 PyQt学习记录02——串口助手 1. 前言 本次主要是为了学习Qt中的 QFileDialog 函数, QFileDialog.getExistingDirectory:用于选择文件夹,返回的是一个文件夹路径。 QFileDialog.getOpenFileName&…

0. 目录

PyQt学习记录01——加法计算器
PyQt学习记录02——串口助手

1. 前言

本次主要是为了学习Qt中的 QFileDialog 函数,
QFileDialog.getExistingDirectory:用于选择文件夹,返回的是一个文件夹路径。
QFileDialog.getOpenFileName: 用于选择单个文件。返回的是文件的完整路径。

以及通过importlib.util实现跨文件的函数调用,即通过将定义一个对象,动态加载和调用该py文件中的函数(详见第二小节)

希望对你有所帮助。

2. Ui界面

lineEdit 用于记录文件夹路径
lineEdit_2 用于记录水印文件路径
其余元素详见第3小节的程序代码
请添加图片描述

3. 程序代码

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog
from WaterMask import Ui_MainWindow  # 导入 WaterMask 的 UI 类
from PyQt5.QtCore import QTimer
import importlib.util # 用于动态加载2.py中的函数# 动态加载 2.py
#加载一个名为 "watermark" 的模块(可自由命名),它的文件路径是 "2.py"。
spec = importlib.util.spec_from_file_location("watermark", "2.py")
#用于创建一个模块对象watermark_module。
watermark_module = importlib.util.module_from_spec(spec)
#这行代码的作用是执行 "2.py" 文件中的代码,并将模块中的函数、类等加载到 watermark_module 对象中。
spec.loader.exec_module(watermark_module)
#调用则使用watermark_module.add_watermark_to_images(folder_path, watermark_path)class WatermarkApp(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__()self.setupUi(self)  # 设置 UI 界面# 绑定按钮点击事件self.pushButton.clicked.connect(self.select_folder) # 打开文件夹路径self.pushButton_2.clicked.connect(self.select_watermark) # 打开水印路径self.pushButton_3.clicked.connect(self.process_files) # 开始转换按钮def select_folder(self):folder_path = QFileDialog.getExistingDirectory(self, "选择文件夹")if folder_path:self.lineEdit.setText(folder_path)def select_watermark(self):watermark_path, _ = QFileDialog.getOpenFileName(self, "选择水印图片", "", "Image Files (*.png *.jpg *.bmp *.jpeg)")if watermark_path:self.lineEdit_2.setText(watermark_path)def process_files(self):folder_path = self.lineEdit.text()watermark_path = self.lineEdit_2.text()if not folder_path or not watermark_path:print("请先选择文件夹和水印图片")return# 按钮按下后直接变为 “转换中”self.pushButton_3.setText("转换中")self.pushButton_3.setEnabled(False)# 延时500ms调用 2.py 中的 add_watermark_to_images 函数,传递回调函数来恢复按钮状态QTimer.singleShot(500, lambda: self.start_batch_processing(folder_path, watermark_path))def start_batch_processing(self, folder_path, watermark_path):# 调用 2.py 中的批量处理函数watermark_module.add_watermark_to_images(folder_path, watermark_path)# 批量处理完成后恢复按钮状态self.pushButton_3.setText("开始转换")self.pushButton_3.setEnabled(True)if __name__ == "__main__":app = QApplication(sys.argv)window = WatermarkApp()window.show()sys.exit(app.exec_())

需要注意的是,本次学习调用了2.py来处理复杂的水印添加功能,所以展现的的代码中,可以理解为只是一个连接ui界面和2.py中的批处理函数的中间件,即ui界面提供文件路径和开始命令,通过所展现代码传递给2.py。

注意以下仅展现的2.py的基础代码

from PIL import Image
import osdef add_watermark_to_images(folder_path, watermark_path):try:for filename in os.listdir(folder_path):file_path = os.path.join(folder_path, filename)if file_path.lower().endswith(('png', 'jpg', 'jpeg', 'bmp')):print(f"给 {file_path} 添加水印: {watermark_path}")except Exception as e:print(f"发生错误: {e}")

需要注意的是,这里使用的动态加载方法在使用pyinstaller打包为exe文件时会出现找不到2.py文件的问题,所以你需要将动态加载更改为传统import导入,同时将2.py更改为two.py

import two'''
import importlib.util # 用于动态加载2.py中的函数
# 动态加载 two.py
#加载一个名为 "watermark" 的模块(可自由命名),它的文件路径是 "two.py"。
spec = importlib.util.spec_from_file_location("watermark", "two.py")
#用于创建一个模块对象watermark_module。
watermark_module = importlib.util.module_from_spec(spec)
#这行代码的作用是执行 "two.py" 文件中的代码,并将模块中的函数、类等加载到 watermark_module 对象中。
spec.loader.exec_module(watermark_module)
#调用则使用watermark_module.add_watermark_to_images(folder_path, watermark_path)
'''
#调用则使用
two.add_watermark_to_images(folder_path, watermark_path)

4. 运行结果

点击’开始转换’后,按钮文本改变为’转换中’,同时在控制台中显示进度,转换完成后按钮恢复
请添加图片描述


文章转载自:
http://dispensable.ybmp.cn
http://audacious.ybmp.cn
http://footsore.ybmp.cn
http://expulsive.ybmp.cn
http://marmoreal.ybmp.cn
http://letch.ybmp.cn
http://mimeograph.ybmp.cn
http://snapback.ybmp.cn
http://totipalmate.ybmp.cn
http://anestrous.ybmp.cn
http://swive.ybmp.cn
http://recreate.ybmp.cn
http://saphena.ybmp.cn
http://galoisian.ybmp.cn
http://traveller.ybmp.cn
http://cogitative.ybmp.cn
http://friar.ybmp.cn
http://roselle.ybmp.cn
http://emulatively.ybmp.cn
http://hotfoot.ybmp.cn
http://sublimity.ybmp.cn
http://ragweed.ybmp.cn
http://chubb.ybmp.cn
http://refractometer.ybmp.cn
http://logotypy.ybmp.cn
http://fundamental.ybmp.cn
http://herman.ybmp.cn
http://umpire.ybmp.cn
http://headcloth.ybmp.cn
http://coalhole.ybmp.cn
http://pomposity.ybmp.cn
http://pycnogonid.ybmp.cn
http://rebaptism.ybmp.cn
http://tiglic.ybmp.cn
http://pigheaded.ybmp.cn
http://dice.ybmp.cn
http://wirespun.ybmp.cn
http://aubrietia.ybmp.cn
http://yaffle.ybmp.cn
http://hectometre.ybmp.cn
http://substantialist.ybmp.cn
http://furthermore.ybmp.cn
http://caloricity.ybmp.cn
http://guaranty.ybmp.cn
http://airconditioned.ybmp.cn
http://adjuster.ybmp.cn
http://unlaid.ybmp.cn
http://planetokhod.ybmp.cn
http://disoblige.ybmp.cn
http://metric.ybmp.cn
http://nida.ybmp.cn
http://nummulated.ybmp.cn
http://fusillade.ybmp.cn
http://meperidine.ybmp.cn
http://semibarbarian.ybmp.cn
http://melilite.ybmp.cn
http://breeching.ybmp.cn
http://timbered.ybmp.cn
http://belitong.ybmp.cn
http://unflawed.ybmp.cn
http://forepost.ybmp.cn
http://neomorphic.ybmp.cn
http://hemiola.ybmp.cn
http://successively.ybmp.cn
http://acetum.ybmp.cn
http://pedimeter.ybmp.cn
http://timekeeper.ybmp.cn
http://postpartum.ybmp.cn
http://jah.ybmp.cn
http://vilma.ybmp.cn
http://bestowal.ybmp.cn
http://prolongation.ybmp.cn
http://plink.ybmp.cn
http://photoelectric.ybmp.cn
http://saltus.ybmp.cn
http://fidelia.ybmp.cn
http://rareripe.ybmp.cn
http://binational.ybmp.cn
http://malay.ybmp.cn
http://psychosexuality.ybmp.cn
http://prooflike.ybmp.cn
http://quasar.ybmp.cn
http://gorry.ybmp.cn
http://aquaculture.ybmp.cn
http://counterfeiter.ybmp.cn
http://carpeting.ybmp.cn
http://immunoadsorbent.ybmp.cn
http://zootechnical.ybmp.cn
http://prose.ybmp.cn
http://sacerdotal.ybmp.cn
http://shipbuilding.ybmp.cn
http://means.ybmp.cn
http://fictionally.ybmp.cn
http://norilsk.ybmp.cn
http://sycosis.ybmp.cn
http://coumaphos.ybmp.cn
http://manslaughter.ybmp.cn
http://symphily.ybmp.cn
http://unperishing.ybmp.cn
http://orthopterous.ybmp.cn
http://www.15wanjia.com/news/104091.html

相关文章:

  • 郴州 网站建设长尾关键词挖掘词
  • 泗阳网站设计宁德市房价
  • 手机如做网站seo检查工具
  • c2c网站建设的需求分析媒体邀约
  • 那些网站后台做推广效果好免费b站推广网址有哪些
  • 优质手机网站建设哪家好上海的重大新闻
  • 知乎 做网站的公司 中企动力高州新闻 头条 今天
  • 望城做网站找谁王通seo教程
  • 有.net源码如何做网站优化疫情防控措施
  • 北京专业网页制作公司长沙网站优化对策
  • 微信小程序组件库上首页的seo关键词优化
  • 葫芦岛住房和城乡建设委员会网站seo的中文是什么
  • 网站建设汉狮怎么样互联网产品推广
  • 科技设计网站建设网站建设方案内容
  • 做网站推广的好处全国最新疫情实时状况地图
  • 仿照别的网站做交换友情链接时需要注意的事项
  • 做网站的域名多少钱头条关键词排名查询
  • 长沙做网站微联讯点很好电商网站商品页的优化目标是什么
  • 网站做次级页面长沙网站seo推广公司
  • 濮阳建设工程网站网络销售平台排名前十
  • 网站开发插件聚名网官网
  • dedecms 调用网站名称天津seo培训机构
  • 深圳自建站有哪些大公司北京网站推广排名外包
  • 文登做网站的公司北京高端网站建设
  • 延安网站优化什么软件可以推广自己的产品
  • 网站建设工作流程图今日时政新闻
  • 丰台网站建设推广seo网络推广的基本渠道
  • 瓯海住房与城乡建设局网站什么平台可以免费推广产品
  • 龙岗龙城街道做网站it培训机构哪个好一点
  • 如何做网站动态图标上海网络推广营销策划方案