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挑选文件夹里宽大于300图片的方法
Mar 05 Python
python中常用的九种预处理方法分享
Sep 11 Python
Python中with及contextlib的用法详解
Jun 08 Python
python实现AES加密解密
Mar 28 Python
Python操作redis实例小结【String、Hash、List、Set等】
May 16 Python
python创建属于自己的单词词库 便于背单词
Jul 30 Python
python-tornado的接口用swagger进行包装的实例
Aug 29 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
tensorflow 环境变量设置方式
Feb 06 Python
使用python3 实现插入数据到mysql
Mar 02 Python
python 安装移动复制第三方库操作
Jul 13 Python
python字符串的一些常见实用操作
Apr 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 $_SERVER详解
2009/01/16 PHP
PHP strtok()函数的优点分析
2010/03/02 PHP
apache+php+mysql安装配置方法小结
2010/08/01 PHP
深入php socket的讲解与实例分析
2013/06/13 PHP
护卫神php套件 php版本升级方法(php5.5.24)
2015/05/10 PHP
php无限极分类实现方法分析
2019/07/04 PHP
php下的原生ajax请求用法实例分析
2020/02/28 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
用javascript实现计算两个日期的间隔天数
2007/08/14 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
js之ActiveX控件使用说明 new ActiveXObject()
2014/03/03 Javascript
轻松创建nodejs服务器(1):一个简单nodejs服务器例子
2014/12/18 NodeJs
jQuery实现按键盘方向键翻页特效
2015/03/18 Javascript
JS实现带有抽屉效果的产品类网站多级导航菜单代码
2015/09/15 Javascript
DOM操作和jQuery实现选项移动操作的简单实例
2016/06/07 Javascript
如何快速上手Vuex
2017/02/14 Javascript
javascript 通过键名获取键盘的keyCode方法
2017/12/31 Javascript
Linux Centos7.2下安装nodejs&npm配置全局路径的教程
2018/05/15 NodeJs
vue把输入框的内容添加到页面的实例讲解
2019/11/11 Javascript
用Nodejs实现在终端中炒股的实现
2020/10/18 NodeJs
讲解Python中if语句的嵌套用法
2015/05/14 Python
Python基于smtplib实现异步发送邮件服务
2015/05/28 Python
Python实现信用卡系统(支持购物、转账、存取钱)
2016/06/24 Python
Python 中迭代器与生成器实例详解
2017/03/29 Python
Python中enumerate函数代码解析
2017/10/31 Python
python爬虫爬取网页表格数据
2018/03/07 Python
python操作redis方法总结
2018/06/06 Python
AVON雅芳官网:世界上最大的美容化妆品公司之一
2016/11/02 全球购物
英国天然宝石首饰购买网站:Gemondo Jewellery
2018/10/23 全球购物
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
生产部管理制度
2014/01/31 职场文书
小学五年级学生评语
2014/04/22 职场文书
爱国卫生月活动总结范文
2014/04/25 职场文书
详解CSS开发过程中的20个快速提升技巧
2021/05/21 HTML / CSS
详细聊聊关于Mysql联合查询的那些事儿
2021/10/24 MySQL
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis