pyqt實(shí)現(xiàn).ui文件批量轉(zhuǎn)換為對(duì)應(yīng).py文件腳本
大家都知道,在通過Pyqt4的designer工具創(chuàng)建界面.ui文件后需要手動(dòng)cmd命令將.ui文件轉(zhuǎn)換為.py之后才能進(jìn)行事件的編寫,如果遇到一次創(chuàng)建很多.ui文件一個(gè)個(gè)轉(zhuǎn)換會(huì)很麻煩,本著會(huì)偷懶的程序員才是好程序員的信條,博主寫了一個(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 "暫無需要轉(zhuǎn)換的UI文件" else: print '轉(zhuǎn)換完畢,請(qǐng)查收!本次共轉(zhuǎn)換 ' + str(count) + ' 個(gè)文件'
祝大家敲的開心~
更新于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庫編寫應(yīng)用,教程百度有很多不在此贅述,用法和pyqt幾乎沒有什么區(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文件腳本就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python數(shù)據(jù)結(jié)構(gòu)leetcode338比特位計(jì)數(shù)算法
這篇文章主要介紹了力扣刷題中python數(shù)據(jù)結(jié)構(gòu)leetcode338比特位計(jì)數(shù)算法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06Python?pywin32實(shí)現(xiàn)word與Excel的處理
這篇文章主要介紹了Python?pywin32實(shí)現(xiàn)word與Excel的處理,pywin32處理Word大多數(shù)用于格式轉(zhuǎn)換,因?yàn)橐话阕x寫操作都可以借助python-docx實(shí)現(xiàn),除非真的有特殊要求,但大部分企業(yè)對(duì)Wrod操作不會(huì)有太多復(fù)雜需求2022-08-08Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析
這篇文章主要介紹了Python word文本自動(dòng)化操作實(shí)現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-11-11Python使用__new__()方法為對(duì)象分配內(nèi)存及返回對(duì)象的引用示例
這篇文章主要介紹了Python使用__new__()方法為對(duì)象分配內(nèi)存及返回對(duì)象的引用,結(jié)合實(shí)例形式分析了Python對(duì)象初始化及內(nèi)存操作相關(guān)使用技巧,需要的朋友可以參考下2019-09-09python使用tkinter實(shí)現(xiàn)簡(jiǎn)單計(jì)算器
這篇文章主要為大家詳細(xì)介紹了python使用tkinter實(shí)現(xiàn)簡(jiǎn)單計(jì)算器,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01matplotlib.subplot()畫子圖并共享y坐標(biāo)軸的方法
Matplotlib的可以把很多張圖畫到一個(gè)顯示界面,本文主要介紹matplotlib.subplot()畫子圖并共享y坐標(biāo)軸的方法,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-05-05Python中l(wèi)ambda表達(dá)式的用法示例小結(jié)
本文主要展示了一些lambda表達(dá)式的使用示例,通過這些示例,我們可以了解到lambda表達(dá)式的常用語法以及使用的場(chǎng)景,感興趣的朋友跟隨小編一起看看吧2024-04-04