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中的装饰器详解
Apr 13 Python
python基于phantomjs实现导入图片
May 13 Python
python实现简易版计算器
Jun 22 Python
python计算两个数的百分比方法
Jun 29 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
使用Python进行体育竞技分析(预测球队成绩)
May 16 Python
基于树莓派的语音对话机器人
Jun 17 Python
详解python调用cmd命令三种方法
Jul 08 Python
django 模版关闭转义方式
May 14 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
只用20行Python代码实现屏幕录制功能
Jun 02 Python
用Python创建简易网站图文教程
Jun 11 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/10/09 PHP
PHP 读取和编写 XML
2014/11/19 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
thinkphp 验证码 的使用小结
2017/05/07 PHP
thinkPHP5实现数据库添加内容的方法
2017/10/25 PHP
List the Codec Files on a Computer
2007/06/18 Javascript
jquery select(列表)的操作(取值/赋值)
2009/08/06 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
2015/12/10 Javascript
js获取本机操作系统类型的两种方法
2015/12/19 Javascript
js实现手机发送验证码功能
2017/03/13 Javascript
轻松实现jQuery添加删除按钮Click事件
2017/03/13 Javascript
jQuery中的deferred使用方法
2017/03/27 jQuery
微信小程序Redux绑定实例详解
2017/06/07 Javascript
微信小程序返回多级页面的实现方法
2017/10/27 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
简述vue路由打开一个新的窗口的方法
2018/11/29 Javascript
JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】
2019/02/21 Javascript
Vue实现根据hash高亮选项卡
2019/05/27 Javascript
Vue的生命周期操作示例
2019/09/17 Javascript
加速vue组件渲染之性能优化
2020/04/09 Javascript
JavaScript实现猜数字游戏
2020/05/20 Javascript
Vue实现腾讯云点播视频上传功能的实现代码
2020/08/17 Javascript
.netcore+vue 实现压缩文件下载功能
2020/09/24 Javascript
Python的SimpleHTTPServer模块用处及使用方法简介
2018/01/22 Python
VScode编写第一个Python程序HelloWorld步骤
2018/04/06 Python
深入浅析HTML5中的SVG
2015/11/27 HTML / CSS
乌克兰排名第一的在线旅游超市:Farvater.Travel
2020/01/02 全球购物
旅游管理毕业生自荐信
2013/11/05 职场文书
英文简历中的自我评价用语
2013/12/09 职场文书
会计电算化毕业生自荐信
2014/03/03 职场文书
巴黎圣母院读书笔记
2015/06/26 职场文书
化工厂员工工作总结
2015/10/15 职场文书
家庭教育培训学习心得体会
2016/01/14 职场文书
关于CentOS 8 搭建MongoDB4.4分片集群的问题
2021/10/24 MongoDB
基于Python实现一个春节倒计时脚本
2022/01/22 Python