pyqt實現(xiàn).ui文件批量轉(zhuǎn)換為對應.py文件腳本
大家都知道,在通過Pyqt4的designer工具創(chuàng)建界面.ui文件后需要手動cmd命令將.ui文件轉(zhuǎn)換為.py之后才能進行事件的編寫,如果遇到一次創(chuàng)建很多.ui文件一個個轉(zhuǎn)換會很麻煩,本著會偷懶的程序員才是好程序員的信條,博主寫了一個能夠自動識別給定目錄下未轉(zhuǎn)換的.ui文件,并將其轉(zhuǎn)換為.py文件的簡單腳本,直接上代碼趴:
#!/usr/bin/env python
#coding=utf-8
'''
自動識別未轉(zhuǎn)換的UI文件并轉(zhuǎn)換為對應版本的py文件
—— by Joy
'''
import os
# 此處的path為UI文件存放的路徑
path = r'D:\SVNzhangy\fast-transfer\src'
# 記錄轉(zhuǎn)換成功的文件數(shù)量
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轉(zhuǎn)換版本(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 "文件轉(zhuǎn)化錯誤,請檢查是否正確安裝指令對應PyQt"
raise e
if count == 0:
print "暫無需要轉(zhuǎn)換的UI文件"
else:
print '轉(zhuǎn)換完畢,請查收!本次共轉(zhuǎn)換 ' + str(count) + ' 個文件'
祝大家敲的開心~
更新于2017/8/30
博主在編譯UI文件時出現(xiàn)了錯誤,在命令后加個-d可以打印錯誤信息,發(fā)現(xiàn)是UI文件中用了中文字體的緣故,改成英文字體就ok了,記錄一下,代碼已修改。
同時,因為pyqt個人應用是免費的,但是用于商業(yè)用途就會收費,所以為了方便,還是推薦使用pip管理工具下載pyside庫編寫應用,教程百度有很多不在此贅述,用法和pyqt幾乎沒有什么區(qū)別,編譯UI文件的命令換成pyside-uic就可以了,注意!不論是pyuic4還是pysi-uic,這兩個exe文件的系統(tǒng)環(huán)境變量都需要設置,否則會找不到命令。
更新于2018/2/22
代碼添加了轉(zhuǎn)換版本pyqt5的選擇,但是轉(zhuǎn)換前請保證對應版本已經(jīng)安裝好。
以上這篇pyqt實現(xiàn).ui文件批量轉(zhuǎn)換為對應.py文件腳本就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
使用Python實現(xiàn)MongoDB數(shù)據(jù)轉(zhuǎn)表格文件CSV
這篇文章主要為大家詳細介紹了如何使用Python實現(xiàn)將MongoDB中的數(shù)據(jù)轉(zhuǎn)換為表格文件(如CSV)以便于數(shù)據(jù)交換、共享或?qū)氲狡渌到y(tǒng)進行分析,需要的可以參考下2024-04-04
詳解Python的collections模塊中的deque雙端隊列結(jié)構(gòu)
deque結(jié)構(gòu)可以看作是內(nèi)置的list結(jié)構(gòu)的加強版,且比隊列提供了更強大的方法,下面就通過幾個小例子來詳解Python的collections模塊中的deque雙端隊列結(jié)構(gòu):2016-07-07
Python如何實現(xiàn)自動生成指定文件名并自定義后綴名
這篇文章主要為大家詳細介紹了Python如何實現(xiàn)名稱為000- 999-文件的自動生成,并且后綴名可以自定義,感興趣的小伙伴可以跟隨小編一起學習一下2025-02-02

