首页
学习
活动
专区
工具
TVP
发布

8行代码实现ui文件到py文件转换

在用PyQt进行GUI编程时,一般先通过Qt Designer产生后缀为.ui的UI文件(类似于XML文件),接着将.ui文件转换成.py文件,再通过一个python主程序调用这个.py文件,实现界面按钮与动作的关联。

将.ui转换为.py一般是通过命令行,如果电脑上安装了Eric 6,也可以用Eric转换,但最通用的还是命令行方法。其语法为

但是,当有大量ui文件时,最好能用一个脚本进行处理,省时省力还不容易出错,用老司机的话这就叫DRY原则(Don't repeat yourself)。

程序代码如下:

通过命令 查看文件夹里有哪些文件。

运行前,文件夹里有四个文件,如下。

运行完毕后,文件夹里每个.ui文件都出现了一个.py文件,如下所示。

这个程序用到了python非常强大的列表表达式(list comprehension)功能。要注意四点:

最好在path字符串前加上rR。 表示赋给path变量的是字符串的字面值(String literals),即看见什么就表示什么,比如反斜杠 只是反斜杠而已,不会起转义作用(众所周知,python里反斜杠是个转义字符,比如 表示换行,行尾 表示续行);

最好用 的方式连接路径和文件名。不要用+号连接,因为需要额外提供反斜杠才行,比如 ,或 ,其实后一种方式会报错,提示行尾(EOL)不能出现反斜杠,尽管已经用了 ,然并卵。深入的原因不知道,难道是python程序的一个不合理之处?所以,就用join吧!更加pythonic。

判断一个文件的后缀时,尽量用 语法,不要用 。前一种方式更简洁更pythonic。

对于简单的循环,尽量使用列表表达式,更快速,用 循环的话语法冗长而且效率低下。如果数据量很大,考虑用生成器(generator),这样一来数据就不会一下子全堆进内存。只要把列表表达式的方括号换成圆括号即可,比如 。但是在程序代码里当我用生成器时,只产生了 ,问题有待查明。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171217G0128Y00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券