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 相关文章推荐
windows下安装python paramiko模块的代码
Feb 10 Python
python去除文件中空格、Tab及回车的方法
Apr 12 Python
pandas表连接 索引上的合并方法
Jun 08 Python
python用post访问restful服务接口的方法
Dec 07 Python
python监测当前联网状态并连接的实例
Dec 18 Python
Python实现网站表单提交和模板
Jan 15 Python
python生成器/yield协程/gevent写简单的图片下载器功能示例
Oct 28 Python
python tkinter canvas使用实例
Nov 04 Python
如何利用pygame实现简单的五子棋游戏
Dec 29 Python
python使用正则表达式(Regular Expression)方法超详细
Dec 30 Python
如何通过Python3和ssl实现加密通信功能
May 09 Python
Keras使用ImageNet上预训练的模型方式
May 23 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
动态生成gif格式的图像要注意?
2006/10/09 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
PHP笔记之:日期函数的使用介绍
2013/04/24 PHP
php原生导出excel文件的两种方法(推荐)
2016/11/19 PHP
laravel使用Faker数据填充的实现方法
2019/04/12 PHP
js arguments对象应用介绍
2012/11/28 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
js实现页面a向页面b传参的方法
2016/05/29 Javascript
JS扩展类,克隆对象与混合类实例分析
2016/11/26 Javascript
jquery实现下拉框多选方法介绍
2017/01/03 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
JavaScript 中 apply 、call 的详解
2017/03/21 Javascript
MUI顶部选项卡的用法(tab-top-webview-main)详解
2017/10/08 Javascript
简单的Vue异步组件实例Demo
2017/12/27 Javascript
详解封装基础的angular4的request请求方法
2018/06/05 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
jQuery--遍历操作实例小结【后代、同胞及过滤】
2020/05/22 jQuery
Python接收Gmail新邮件并发送到gtalk的方法
2015/03/10 Python
python机器学习实战之K均值聚类
2017/12/20 Python
pandas中去除指定字符的实例
2018/05/18 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python selenium 弹出框处理的实现
2019/02/26 Python
TensorFlow tensor的拼接实例
2020/01/19 Python
Django扫码抽奖平台的配置过程详解
2021/01/14 Python
茵宝(Umbro)英国官方商店:英国足球服装生产商
2016/12/29 全球购物
Nike德国官网:Nike.com (DE)
2018/11/13 全球购物
Onzie官网:美国时尚瑜伽品牌
2019/08/21 全球购物
俄罗斯电子产品、计算机和家用电器购物网站:OLDI
2019/10/27 全球购物
大学生军训感想
2014/02/16 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
2014年个人委托书范本
2014/10/13 职场文书
学生个人总结范文
2015/02/15 职场文书
Python读取文件夹下的所有文件实例代码
2021/04/02 Python
Oracle锁表解决方法的详细记录
2022/06/05 Oracle
MySQL数据库实验实现简单数据库应用系统设计
2022/06/21 MySQL