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框架简单性能测试结果分享(包含django、flask、bottle、tornado)
Aug 25 Python
python根据文件大小打log日志
Oct 09 Python
python使用pil生成图片验证码的方法
May 08 Python
Django权限机制实现代码详解
Feb 05 Python
python3.5 email实现发送邮件功能
May 22 Python
python 通过 socket 发送文件的实例代码
Aug 14 Python
Python qqbot 实现qq机器人的示例代码
Jul 11 Python
django框架模板语言使用方法详解
Jul 18 Python
使用Python实现分别输出每个数组
Dec 06 Python
基于python监控程序是否关闭
Jan 14 Python
Transpose 数组行列转置的限制方式
Feb 11 Python
TensorFlow Autodiff自动微分详解
Jul 06 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循环输出数据库内容的代码
2008/05/24 PHP
PHP采集利器 Snoopy 试用心得
2011/07/03 PHP
PHP实现的pdo连接数据库并插入数据功能简单示例
2019/03/30 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
jQuery.autocomplete 支持中文输入(firefox)修正方法
2011/03/10 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
详解javascript高级定时器
2015/12/31 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
详解Angular.js指令中scope类型的几种特殊情况
2017/02/21 Javascript
Angular2使用Guard和Resolve进行验证和权限控制
2017/04/24 Javascript
用图片替换checkbox原始样式并实现同样的功能
2018/11/15 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
javascript网页随机点名实现过程解析
2019/10/15 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
Python统计文件中去重后uuid个数的方法
2015/07/30 Python
使用Django Form解决表单数据无法动态刷新的两种方法
2017/07/14 Python
Python排序搜索基本算法之插入排序实例分析
2017/12/11 Python
python  创建一个保留重复值的列表的补码
2018/10/15 Python
Pandas之MultiIndex对象的示例详解
2019/06/25 Python
python的launcher用法知识点总结
2020/08/07 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
Bulk Powders意大利:运动补充在线商店
2019/02/09 全球购物
生产班组长岗位职责
2014/01/05 职场文书
个人能力自我鉴赏
2014/01/25 职场文书
百货商场楼层班组长竞聘书
2014/03/31 职场文书
羽毛球社团活动总结
2014/06/27 职场文书
英文感谢信范文
2015/01/21 职场文书
2015年医院药剂科工作总结
2015/05/04 职场文书
音乐课外活动总结
2015/05/09 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
Python爬虫实战之爬取京东商品数据并实实现数据可视化
2021/06/07 Python
springboot中的pom文件 project报错问题
2022/01/18 Java/Android