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递归函数绘制分形树的方法
Jun 22 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
Oct 29 Python
python3中property使用方法详解
Apr 23 Python
PyTorch中Tensor的维度变换实现
Aug 18 Python
Python 脚本拉取 Docker 镜像问题
Nov 10 Python
PyTorch和Keras计算模型参数的例子
Jan 02 Python
Python基础之字符串常见操作经典实例详解
Feb 26 Python
python 连续不等式语法糖实例
Apr 15 Python
浅析Python 抽象工厂模式的优缺点
Jul 13 Python
Python使用grequests并发发送请求的示例
Nov 05 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
基于PyTorch实现一个简单的CNN图像分类器
May 29 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类继承 extends使用介绍
2014/01/14 PHP
PHP中source #N问题的解决方法
2014/01/27 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
关闭浏览器时提示onbeforeunload事件
2013/12/25 Javascript
javascript实现客户端兼容各浏览器创建csv并下载的方法
2015/03/23 Javascript
javascript实现图片跟随鼠标移动效果的方法
2015/05/13 Javascript
js设置document.domain实现跨域的注意点分析
2015/05/21 Javascript
jQuery网页版打砖块小游戏源码分享
2015/08/20 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
JS实现图片剪裁并预览效果
2016/08/12 Javascript
利用JS判断鼠标移入元素的方向
2016/12/11 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
javaScript 连接打印机,打印小票的实例
2017/12/29 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
js实现黑白div块画空心的图形
2018/12/13 Javascript
vue2.0+vue-router构建一个简单的列表页的示例代码
2019/02/13 Javascript
vue props对象validator自定义函数实例
2019/11/13 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
python使用电子邮件模块smtplib的方法
2016/08/28 Python
python3中str(字符串)的使用教程
2017/03/23 Python
Python常用内置模块之xml模块(详解)
2017/05/23 Python
python获取网页中所有图片并筛选指定分辨率的方法
2018/03/31 Python
python中map的基本用法示例
2018/09/10 Python
python文件读写代码实例
2019/10/21 Python
Numpy实现卷积神经网络(CNN)的示例
2020/10/09 Python
python代码实现图书管理系统
2020/11/30 Python
Pycharm在指定目录下生成文件和删除文件的实现
2020/12/28 Python
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
医学生实习自我鉴定
2013/09/27 职场文书
社会实践评语
2014/04/28 职场文书
公司承诺书格式
2014/05/21 职场文书
大学生暑期社会实践证明范本
2014/10/24 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书