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

PyQt qrc2py 使用PowerShell将qrc文件转为py文件并且将导入模块PyQt或PySide转换为qtpy模块开箱即用

前言

由于需要使用不同的qt环境(PySide,PyQt)所以写了这个脚本,使用找到的随便一个rcc命令去转换qrc文件,然后将导入模块换成qtpy这个通用库(支持pyside2-6,pyqt5-6),老版本的是Qt.py(支持pyside0-2~pyqt4-5)你可以自己改。

使用

上一篇文章写了如何将ui转为py 链接 这一篇换个写法
因为qrc文件一般只有一个,不像ui文件有很多个,所以在这里直接指定文件,不去查询所有的qrc文件

# .LINK https://blog.csdn.net/weixin_42579717/article/details/137281606
# 检查rcc命令是否存在
$_commands = @("pyrcc5", "pyside2-rcc", "pyrcc6", "pyside6-rcc", "pyside-rcc", "pyrcc")
$command = $null
foreach ($cmd in $_commands)
{$command = Get-Command $cmd -ErrorAction SilentlyContinueif ($command){break}
}
if (-not$command)
{Write-Host "Command not found."exit 1
}
$command = $command.Name
Write-Output "Use command: $command"# 获取当前脚本所在的文件夹
$scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Definition$qrcFile = Join-Path $scriptDirectory "resource.qrc"
$pyFile = Join-Path $scriptDirectory "resource_rc.py"Write-Host $qrcFile
Write-Host $pyFile
& $command -o $pyFile $qrcFile
# 检查文件转换是否成功
if (Test-Path $pyFile)
{# 更换导入模块(Get-Content $pyFile -Encoding UTF8) -replace "from (PyQt[456]?|PySide[26]?)", "from qtpy" | Set-Content $pyFile -Encoding UTF8Write-Host "Files have been converted and modified successfully: $pyFile"
}
else
{Write-Host "convert failed: $qrcFile"
}

如果你的项目有结构的话比如下图
目录结构
可以将以下代码替换

# 获取当前脚本所在的文件夹
$scriptDirectory = Split-Path -Parent $MyInvocation.MyCommand.Definition
$parentDirectory = Split-Path -Parent $scriptDirectory$qrcFile = Join-Path $scriptDirectory "resource.qrc"
$pyFile = Join-Path $parentDirectory "ui/resource_rc.py"

PS
补充说明,PowerShell 不能用中文文档注释但是可以单行注释

http://www.lryc.cn/news/334657.html

相关文章:

  • phpstorm设置头部注释和自定义注释内容
  • 【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)
  • 2024年150道高频Java面试题(二十二)
  • 如何使用校园网——Win10笔记本,台式机互开热点
  • c#:简洁实现if-else语句
  • 金融贷款批准预测项目
  • FR中隐藏系统管理--用户管理中 表格中每条数据中的编辑按钮,删除按钮
  • 函数重载和引用【C++】
  • rust-tokio发布考古
  • 3D医疗图像配准 | 基于Vision-Transformer+Pytorch实现的3D医疗图像配准算法
  • 设计模式(18):状态模式
  • 如果用大模型考公,kimi、通义千问谁能考高分?
  • 如何在Java中创建对象输入流
  • Vue 打包或运行时报错Error: error:0308010C
  • 222222222222222222222222
  • 微信小程序 电影院售票选座票务系统5w7l6
  • C#:用定时器监控定时器,实现中止定时器正在执行的任务,并重启
  • 计算机组成原理 — CPU 的结构和功能
  • npm包安装与管理:深入解析命令行工具的全方位操作指南,涵盖脚本执行与包发布流程
  • 序列化结构(protobuf)实现一个TCP服务器(C++)
  • Python中的list()和map() 用法
  • 公网环境下如何端口映射?
  • 7-36 输入年份和月份
  • Linux C++ 023-类模板
  • Android图形显示架构概览
  • 算法学习17:背包问题(动态规划)
  • axios-mock-adapter使用
  • 基于单片机的家用无线火灾报警系统设计
  • LangChain:索引(Indexes)--基础知识
  • Cortex-M4架构