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实现多线程的两种方式
May 22 Python
python实现excel读写数据
Mar 02 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python实现flappy bird小游戏
Dec 24 Python
对python中xlsx,csv以及json文件的相互转化方法详解
Dec 25 Python
django在开发中取消外键约束的实现
May 20 Python
python 如何快速复制序列
Sep 07 Python
python从Oracle读取数据生成图表
Oct 14 Python
Python实现壁纸下载与轮换
Oct 19 Python
python安装sklearn模块的方法详解
Nov 28 Python
Python 内置函数速查表一览
Jun 02 Python
python 网络编程要点总结
Jun 18 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危险函数(disable_functions)
2012/02/23 PHP
php日期转时间戳,指定日期转换成时间戳
2012/07/17 PHP
PHP实现加密的几种方式介绍
2015/02/22 PHP
使用Yii2实现主从数据库设置
2016/11/20 PHP
PHP使用finfo_file()函数检测上传图片类型的实现方法
2017/04/18 PHP
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
node.js中的fs.chmod方法使用说明
2014/12/18 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
JavaScript中的call方法和apply方法使用对比
2015/08/12 Javascript
九种原生js动画效果
2015/11/11 Javascript
移动端jQuery修正Web页面滑动时div问题的两则实例
2016/05/30 Javascript
Bootstrap零基础入门教程(二)
2016/07/18 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
JS实现的点击表头排序功能示例
2017/03/27 Javascript
AngularJs 常用的过滤器
2017/05/15 Javascript
Bootstrap Table 删除和批量删除
2017/09/22 Javascript
js捆绑TypeScript声明文件的方法教程
2018/04/13 Javascript
详解JavaScript中的函数、对象
2019/04/01 Javascript
小程序分页实践之编写可复用分页组件
2019/07/18 Javascript
微信小程序实现加入购物车滑动轨迹
2020/11/18 Javascript
js实现鼠标拖曳效果
2020/12/30 Javascript
python实现用户管理系统
2018/01/10 Python
Python中shapefile转换geojson的示例
2019/01/03 Python
Python设置matplotlib.plot的坐标轴刻度间隔以及刻度范围
2019/06/25 Python
python实现录制全屏和选择区域录屏功能
2021/02/05 Python
德国高性价比网上药店:medpex
2017/07/09 全球购物
美国克罗格超市在线购物:Kroger
2019/06/21 全球购物
生物化学研究助理员求职信
2013/10/09 职场文书
毕业生找工作的求职信范文
2013/12/24 职场文书
自动化专业大学生职业生涯规划范文:爱拚才会赢
2014/09/12 职场文书
集团财务总监岗位职责
2015/04/03 职场文书
2015年店长工作总结范文
2015/04/08 职场文书
小学工作总结2015
2015/05/04 职场文书
六一儿童节新闻稿
2015/07/17 职场文书
公务员爱岗敬业心得体会
2016/01/25 职场文书
MySQL约束(创建表时的各种条件说明)
2022/06/21 MySQL