pyqt实现.ui文件批量转换为对应.py文件脚本


Posted in Python onJune 19, 2019

大家都知道,在通过Pyqt4的designer工具创建界面.ui文件后需要手动cmd命令将.ui文件转换为.py之后才能进行事件的编写,如果遇到一次创建很多.ui文件一个个转换会很麻烦,本着会偷懒的程序员才是好程序员的信条,博主写了一个能够自动识别给定目录下未转换的.ui文件,并将其转换为.py文件的简单脚本,直接上代码趴:

#!/usr/bin/env python
#coding=utf-8
'''
自动识别未转换的UI文件并转换为对应版本的py文件
    —— by Joy
'''
import os
 
# 此处的path为UI文件存放的路径
path = r'D:\SVNzhangy\fast-transfer\src'
 
# 记录转换成功的文件数量
count = 0
for root, dirs, files in os.walk(path):
  filename = []
  for file in files:
    if file.endswith('.py'):
      filename2 = file.split('.')[0]
      filename.append(filename2)
 
  version = input("请输入1 or 2 确认pyqt转换版本(1 - pyqt4,2 - pyqt5):")
 
  for file in files:
    if file.endswith('.ui'):
      filename1 = file.split('.')[0]
      filename4 = filename1 + "_qt4"
      filename5 = filename1 + "_qt5"
      try:
        if "1" == str(version):
          if filename.count(filename4) == 0:
            os.system('pyuic4 -o %s.py %s.ui -d'%(path + '\\' + filename4, path+'\\'+filename1))
            count+=1
        if "2" == str(version):
          if filename.count(filename5) == 0:
            os.system('pyuic5 -o %s.py %s.ui -d' % (path + '\\' + filename5, path + '\\' + filename1))
            count += 1
      except Exception as e:
        print "文件转化错误,请检查是否正确安装指令对应PyQt"
        raise e
 
  if count == 0:
    print "暂无需要转换的UI文件"
  else:
    print '转换完毕,请查收!本次共转换 ' + str(count) + ' 个文件'

祝大家敲的开心~

更新于2017/8/30

博主在编译UI文件时出现了错误,在命令后加个-d可以打印错误信息,发现是UI文件中用了中文字体的缘故,改成英文字体就ok了,记录一下,代码已修改。

同时,因为pyqt个人应用是免费的,但是用于商业用途就会收费,所以为了方便,还是推荐使用pip管理工具下载pyside库编写应用,教程百度有很多不在此赘述,用法和pyqt几乎没有什么区别,编译UI文件的命令换成pyside-uic就可以了,注意!不论是pyuic4还是pysi-uic,这两个exe文件的系统环境变量都需要设置,否则会找不到命令。

更新于2018/2/22

代码添加了转换版本pyqt5的选择,但是转换前请保证对应版本已经安装好。

以上这篇pyqt实现.ui文件批量转换为对应.py文件脚本就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python获取单个程序CPU使用情况趋势图
Mar 10 Python
python定时执行指定函数的方法
May 27 Python
Python线程创建和终止实例代码
Jan 20 Python
django2用iframe标签完成网页内嵌播放b站视频功能
Jun 20 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
如何在Django中设置定时任务的方法示例
Jan 18 Python
Python使用LDAP做用户认证的方法
Jun 20 Python
python面试题之列表声明实例分析
Jul 08 Python
TensorFlow2.0矩阵与向量的加减乘实例
Feb 07 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
Aug 04 Python
用Python实现职工信息管理系统
Dec 30 Python
python小型的音频操作库mp3Play
Apr 24 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 #Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
Jun 19 #Python
python调用动态链接库的基本过程详解
Jun 19 #Python
python中使用ctypes调用so传参设置遇到的问题及解决方法
Jun 19 #Python
华为校园招聘上机笔试题 扑克牌大小(python)
Apr 22 #Python
PyQt5实现从主窗口打开子窗口的方法
Jun 19 #Python
python操作kafka实践的示例代码
Jun 19 #Python
You might like
ThinkPHP安装和设置
2015/07/27 PHP
php基于CodeIgniter实现图片上传、剪切功能
2016/05/14 PHP
PDO::errorInfo讲解
2019/01/28 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
Javascript创建Silverlight Plugin以及自定义nonSilverlight和lowSilverlight样式
2010/06/28 Javascript
什么是json和jsonp,jQuery json实例详详细说明
2012/12/11 Javascript
jquery移除button的inline onclick事件(已测试及兼容浏览器)
2013/01/25 Javascript
JQuery入门——用one()方法绑定事件处理函数(仅触发一次)
2013/02/05 Javascript
js模仿windows桌面图标排列算法具体实现(附图)
2013/06/16 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
2015/03/04 Javascript
JS自定义选项卡函数及用法实例分析
2015/09/02 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
React-router v4 路由配置方法小结
2017/08/08 Javascript
vue左右侧联动滚动的实现代码
2018/06/06 Javascript
mpvue中使用flyjs全局拦截的实现代码
2018/09/13 Javascript
Vue一个案例引发的递归组件的使用详解
2018/11/15 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
浅谈Vue CLI 3结合Lerna进行UI框架设计
2019/04/14 Javascript
js 计数排序的实现示例(升级版)
2020/01/12 Javascript
vue使用openlayers实现移动点动画
2020/09/24 Javascript
Python制作Windows系统服务
2017/03/25 Python
Python 的类、继承和多态详解
2017/07/16 Python
python中通过预先编译正则表达式提高效率
2017/09/25 Python
Python根据欧拉角求旋转矩阵的实例
2019/01/28 Python
python PIL和CV对 图片的读取,显示,裁剪,保存实现方法
2019/08/07 Python
pandas抽取行列数据的几种方法
2020/12/13 Python
纯CSS3实现表单验证效果(非常不错)
2017/01/18 HTML / CSS
心理咨询承诺书
2014/05/20 职场文书
任命书模板
2014/06/04 职场文书
2015年仓库管理工作总结
2015/05/25 职场文书
Springboot使用Spring Data JPA实现数据库操作
2021/06/30 Java/Android
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers
不想升级Win11?教你彻底锁定老版Windows系统的方法(附下载地址)
2022/09/23 数码科技
python 镜像环境搭建总结
2022/09/23 Python