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 相关文章推荐
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
Python开发的HTTP库requests详解
Aug 29 Python
win10下Python3.6安装、配置以及pip安装包教程
Oct 01 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
对Python字符串中的换行符和制表符介绍
May 03 Python
python实现合并两个排序的链表
Mar 03 Python
24式加速你的Python(小结)
Jun 13 Python
python实现静态服务器
Sep 05 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
Feb 10 Python
python 通过邮件控制实现远程控制电脑操作
Mar 16 Python
在Python3.74+PyCharm2020.1 x64中安装使用Kivy的详细教程
Aug 07 Python
如何利用python实现Simhash算法
Jun 28 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中key和current,next的联合运用实例分析
2016/03/29 PHP
PHP清除缓存的几种方法总结
2017/09/12 PHP
在Laravel中实现使用AJAX动态刷新部分页面
2019/10/15 PHP
js去空格技巧分别去字符串前后、左右空格
2013/10/21 Javascript
ECMAScript6的新特性箭头函数(Arrow Function)详细介绍
2014/06/07 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
js实现滚动条滚动到某个位置便自动定位某个tr
2021/01/20 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
jQuery基础的工厂函数以及定时器的经典实例分析
2016/05/20 Javascript
javascript 数组的正态分布排序的问题
2016/07/31 Javascript
JavaScript实现打地鼠小游戏
2020/04/23 Javascript
AngularJS 的$timeout服务示例代码
2017/09/21 Javascript
深入理解Vue 单向数据流的原理
2017/11/09 Javascript
Vue的编码技巧与规范使用详解
2019/08/28 Javascript
jQuery实现数字华容道小游戏(实例代码)
2020/01/16 jQuery
深入分析jQuery.one() 函数
2020/06/03 jQuery
python对指定目录下文件进行批量重命名的方法
2015/04/18 Python
python通过smpt发送邮件的方法
2015/04/30 Python
python实现获取Ip归属地等信息
2016/08/27 Python
VSCode下配置python调试运行环境的方法
2018/04/06 Python
python os模块简单应用示例
2019/05/23 Python
Django时区详解
2019/07/24 Python
python 字符串常用函数详解
2019/09/11 Python
python模拟实现斗地主发牌
2020/01/07 Python
Python操作Jira库常用方法解析
2020/04/10 Python
时尚设计师手表:The Watch Cabin
2018/10/06 全球购物
创先争优活动方案
2014/02/12 职场文书
信息总监管理职责范本
2014/03/08 职场文书
党员干部2014全国两会学习心得体会
2014/03/10 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
干部作风建设心得体会
2014/10/22 职场文书
护士2014年终工作总结
2014/11/11 职场文书
经理岗位职责范本
2015/04/15 职场文书
python必学知识之文件操作(建议收藏)
2021/05/30 Python
Spring Cache和EhCache实现缓存管理方式
2021/06/15 Java/Android
关于MySQL中的 like操作符详情
2021/11/17 MySQL