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检测远程端口是否打开的方法
Mar 14 Python
Python实现将罗马数字转换成普通阿拉伯数字的方法
Apr 19 Python
python+pyqt实现右下角弹出框
Oct 26 Python
详解python中的json和字典dict
Jun 22 Python
pandas.dataframe按行索引表达式选取方法
Oct 30 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
python 列表输出重复值以及对应的角标方法
Jun 11 Python
win10环境下配置vscode python开发环境的教程详解
Oct 16 Python
Python面向对象封装操作案例详解
Dec 31 Python
在keras中获取某一层上的feature map实例
Jan 24 Python
python itsdangerous模块的具体使用方法
Feb 17 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
Jun 08 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根据日期或时间戳获取星座信息和生肖等信息
2015/10/20 PHP
详解PHP实现异步调用的4种方法
2016/03/14 PHP
创建无限极分类树型结构的简单方法
2017/06/20 PHP
PHP中遍历数组的三种常用方法实例分析
2019/06/24 PHP
使用PHP开发留言板功能
2019/11/19 PHP
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
JavaScript 设计模式之组合模式解析
2010/04/09 Javascript
javascript实现的弹出层背景置灰-模拟(easyui dialog)
2013/12/27 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
jquery带翻页动画的电子杂志代码分享
2015/08/21 Javascript
JavaScript知识点总结(十)之this关键字
2016/05/31 Javascript
vue.js+Echarts开发图表放大缩小功能实例
2017/06/09 Javascript
Javascript实现运算符重载详解
2018/04/07 Javascript
element el-input directive数字进行控制
2018/10/11 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序实现卡片左右滑动效果的示例代码
2019/05/01 Javascript
vue实现简单全选和反选功能
2020/09/15 Javascript
python连接mongodb操作数据示例(mongodb数据库配置类)
2013/12/31 Python
在Python中使用元类的教程
2015/04/28 Python
Python调用微信公众平台接口操作示例
2017/07/08 Python
Gauss-Seidel迭代算法的Python实现详解
2019/06/29 Python
PyCharm使用之配置SSH Interpreter的方法步骤
2019/12/26 Python
Jmeter调用Python脚本实现参数互相传递的实现
2021/01/22 Python
python装饰器代码深入讲解
2021/03/01 Python
Agoda西班牙:全球特价酒店预订
2017/06/03 全球购物
德国大型箱包和皮具商店:Koffer
2019/10/01 全球购物
甜点店创业计划书
2014/01/27 职场文书
艺校音乐专业自我鉴定范文
2014/03/01 职场文书
小学班主任培训方案
2014/06/04 职场文书
五一活动标语
2014/06/30 职场文书
护士自荐信怎么写
2015/03/06 职场文书
年会主持人开场白台词
2015/05/29 职场文书
解决hive中导入text文件遇到的坑
2021/04/07 Python
python 如何用map()函数创建多线程任务
2021/04/07 Python
my.ini优化mysql数据库性能的十个参数(推荐)
2021/05/26 MySQL