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命令启动Web服务器实例详解
Feb 23 Python
Python入门_浅谈数据结构的4种基本类型
May 16 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
Python将图片转换为字符画的方法
Jun 16 Python
python使用turtle库绘制时钟
Mar 25 Python
Python面向对象程序设计多继承和多态用法示例
Apr 08 Python
Python实现的栈、队列、文件目录遍历操作示例
May 06 Python
python pandas写入excel文件的方法示例
Jun 25 Python
python实现集中式的病毒扫描功能详解
Jul 09 Python
通过python改变图片特定区域的颜色详解
Jul 15 Python
详解Python绘图Turtle库
Oct 12 Python
python的json包位置及用法总结
Jun 21 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
PHP初学者头疼问题总结
2006/07/08 PHP
一篇不错的PHP基础学习笔记
2007/03/18 PHP
PHP中的string类型使用说明
2010/07/27 PHP
PHP判断远程url是否有效的几种方法小结
2011/10/08 PHP
在html文件中也可以执行php语句的方法
2015/04/09 PHP
thinkphp制作404跳转页的简单实现方法
2016/09/22 PHP
php将从数据库中获得的数据转换成json格式并输出的方法
2018/08/21 PHP
jQuery函数的等价原生函数代码示例
2013/05/27 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
jquery中$.post()方法的简单实例
2014/02/04 Javascript
js获取checkbox值的方法
2015/01/28 Javascript
javascript框架设计之框架分类及主要功能
2015/06/23 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
js中开关变量使用实例
2017/02/24 Javascript
javascript中this用法实例详解
2017/04/06 Javascript
Vue-router路由判断页面未登录跳转到登录页面的实例
2017/10/26 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
VUE 动态组件的应用案例分析
2019/12/02 Javascript
浅谈Vue.use到底是什么鬼
2020/01/21 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
python try except 捕获所有异常的实例
2018/10/18 Python
Python 获取主机ip与hostname的方法
2018/12/17 Python
python3+selenium实现126邮箱登陆并发送邮件功能
2019/01/23 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
简单了解python字符串前面加r,u的含义
2019/12/26 Python
Python读写压缩文件的方法
2020/07/30 Python
HTML5所有标签汇总及标签意义解释
2015/03/12 HTML / CSS
Joe Fresh官网:加拿大时尚品牌和零售连锁店
2016/11/30 全球购物
小狗电器官方商城:中国高端吸尘器品牌
2017/03/29 全球购物
荷兰皇家航空公司中国官网:KLM中国
2017/12/13 全球购物
大学生简短的自我评价
2014/09/12 职场文书
科学发展观标语
2014/10/08 职场文书
法制教育观后感
2015/06/17 职场文书
如何使用PyCharm及常用配置详解
2021/06/03 Python
JS前端canvas交互实现拖拽旋转及缩放示例
2022/08/05 Javascript