pyqt實(shí)現(xiàn).ui文件批量轉(zhuǎn)換為對(duì)應(yīng).py文件腳本
大家都知道,在通過(guò)Pyqt4的designer工具創(chuàng)建界面.ui文件后需要手動(dòng)cmd命令將.ui文件轉(zhuǎn)換為.py之后才能進(jìn)行事件的編寫(xiě),如果遇到一次創(chuàng)建很多.ui文件一個(gè)個(gè)轉(zhuǎn)換會(huì)很麻煩,本著會(huì)偷懶的程序員才是好程序員的信條,博主寫(xiě)了一個(gè)能夠自動(dòng)識(shí)別給定目錄下未轉(zhuǎn)換的.ui文件,并將其轉(zhuǎn)換為.py文件的簡(jiǎn)單腳本,直接上代碼趴:
#!/usr/bin/env python
#coding=utf-8
'''
自動(dòng)識(shí)別未轉(zhuǎn)換的UI文件并轉(zhuǎn)換為對(duì)應(yīng)版本的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("請(qǐng)輸入1 or 2 確認(rèn)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)化錯(cuò)誤,請(qǐng)檢查是否正確安裝指令對(duì)應(yīng)PyQt"
raise e
if count == 0:
print "暫無(wú)需要轉(zhuǎn)換的UI文件"
else:
print '轉(zhuǎn)換完畢,請(qǐng)查收!本次共轉(zhuǎn)換 ' + str(count) + ' 個(gè)文件'
祝大家敲的開(kāi)心~
更新于2017/8/30
博主在編譯UI文件時(shí)出現(xiàn)了錯(cuò)誤,在命令后加個(gè)-d可以打印錯(cuò)誤信息,發(fā)現(xiàn)是UI文件中用了中文字體的緣故,改成英文字體就ok了,記錄一下,代碼已修改。
同時(shí),因?yàn)閜yqt個(gè)人應(yīng)用是免費(fèi)的,但是用于商業(yè)用途就會(huì)收費(fèi),所以為了方便,還是推薦使用pip管理工具下載pyside庫(kù)編寫(xiě)應(yīng)用,教程百度有很多不在此贅述,用法和pyqt幾乎沒(méi)有什么區(qū)別,編譯UI文件的命令換成pyside-uic就可以了,注意!不論是pyuic4還是pysi-uic,這兩個(gè)exe文件的系統(tǒng)環(huán)境變量都需要設(shè)置,否則會(huì)找不到命令。
更新于2018/2/22
代碼添加了轉(zhuǎn)換版本pyqt5的選擇,但是轉(zhuǎn)換前請(qǐng)保證對(duì)應(yīng)版本已經(jīng)安裝好。
以上這篇pyqt實(shí)現(xiàn).ui文件批量轉(zhuǎn)換為對(duì)應(yīng).py文件腳本就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
沒(méi)有安裝Python的電腦運(yùn)行Python代碼教程
你有沒(méi)有遇到過(guò)這種情況,自己辛苦碼完了代碼想發(fā)給別人運(yùn)行看效果,可是對(duì)方竟然沒(méi)安裝Python,這要怎么運(yùn)行呢?本篇文章帶你解決這個(gè)問(wèn)題,需要的朋友快來(lái)看看2021-10-10
使用Python實(shí)現(xiàn)MongoDB數(shù)據(jù)轉(zhuǎn)表格文件CSV
這篇文章主要為大家詳細(xì)介紹了如何使用Python實(shí)現(xiàn)將MongoDB中的數(shù)據(jù)轉(zhuǎn)換為表格文件(如CSV)以便于數(shù)據(jù)交換、共享或?qū)氲狡渌到y(tǒng)進(jìn)行分析,需要的可以參考下2024-04-04
python如何繪制極坐標(biāo)輪廓圖contourf
這篇文章主要介紹了python如何繪制極坐標(biāo)輪廓圖contourf問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08
詳解Python的collections模塊中的deque雙端隊(duì)列結(jié)構(gòu)
deque結(jié)構(gòu)可以看作是內(nèi)置的list結(jié)構(gòu)的加強(qiáng)版,且比隊(duì)列提供了更強(qiáng)大的方法,下面就通過(guò)幾個(gè)小例子來(lái)詳解Python的collections模塊中的deque雙端隊(duì)列結(jié)構(gòu):2016-07-07
Python爬蟲(chóng)實(shí)現(xiàn)Cookie模擬登錄
這篇文章主要介紹了Python爬蟲(chóng)實(shí)現(xiàn)Cookie模擬登錄,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Python如何實(shí)現(xiàn)自動(dòng)生成指定文件名并自定義后綴名
這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)名稱(chēng)為000- 999-文件的自動(dòng)生成,并且后綴名可以自定義,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-02-02

