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文件夹与文件的操作实现代码
Jul 13 Python
python实现斐波那契递归函数的方法
Sep 08 Python
python添加模块搜索路径方法
Sep 11 Python
Python-OpenCV基本操作方法详解
Apr 02 Python
Python实现计算圆周率π的值到任意位的方法示例
May 08 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
Apr 25 Python
python3利用Socket实现通信的方法示例
May 06 Python
python3使用GUI统计代码量
Sep 18 Python
Python发送邮件封装实现过程详解
May 09 Python
详解Python中openpyxl模块基本用法
Feb 23 Python
python实现大文本文件分割成多个小文件
Apr 20 Python
Python中 range | np.arange | np.linspace三者的区别
Mar 22 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中截取字符串支持utf-8
2007/01/18 PHP
PHP 分页原理分析,大家可以看看
2009/12/21 PHP
php 数组二分法查找函数代码
2010/02/16 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
PHP_NETWORK_GETADDRESSES: GETADDRINFO FAILED问题解决办法
2014/05/04 PHP
PhpStorm配置Xdebug调试的方法步骤
2019/02/02 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
如何重写Laravel异常处理类详解
2020/12/20 PHP
js 图片轮播(5张图片)
2008/12/30 Javascript
iframe 自适应高度[在IE6 IE7 FF下测试通过]
2009/04/13 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
jQuery实现用户注册的表单验证示例
2013/08/28 Javascript
JS中把字符转成ASCII值的函数示例代码
2013/11/21 Javascript
将中国标准时间转换成标准格式的代码
2014/03/20 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
JavaScript函数的调用以及参数传递
2015/10/21 Javascript
javascript运算符——逻辑运算符全面解析
2016/06/27 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
Postman的下载及安装教程详解
2018/10/16 Javascript
Jquery实现无缝向上循环滚动列表的特效
2019/02/13 jQuery
如何基于原生javaScript生成带图片的二维码
2019/11/21 Javascript
js实现鼠标点击飘爱心效果
2020/08/19 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
python中文分词教程之前向最大正向匹配算法详解
2017/11/02 Python
Python实现批量读取图片并存入mongodb数据库的方法示例
2018/04/02 Python
关于python列表增加元素的三种操作方法
2018/08/22 Python
对python PLT中的image和skimage处理图片方法详解
2019/01/10 Python
计算机专业自荐信
2013/10/14 职场文书
英文求职信结束语大全
2013/10/26 职场文书
财务管理个人自荐书范文
2013/11/24 职场文书
运动会稿件300字
2014/02/14 职场文书
个性发展自我评价2015
2015/03/09 职场文书
银行柜员工作心得体会
2016/01/23 职场文书
JS setTimeout与setInterval的区别
2022/04/20 Javascript