pyqt實現(xiàn).ui文件批量轉換為對應.py文件腳本
大家都知道,在通過Pyqt4的designer工具創(chuàng)建界面.ui文件后需要手動cmd命令將.ui文件轉換為.py之后才能進行事件的編寫,如果遇到一次創(chuàng)建很多.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' # 記錄轉換成功的文件數(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轉換版本(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文件時出現(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
代碼添加了轉換版本pyqt5的選擇,但是轉換前請保證對應版本已經(jīng)安裝好。
以上這篇pyqt實現(xiàn).ui文件批量轉換為對應.py文件腳本就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
python數(shù)據(jù)結構leetcode338比特位計數(shù)算法
這篇文章主要介紹了力扣刷題中python數(shù)據(jù)結構leetcode338比特位計數(shù)算法解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06Python?pywin32實現(xiàn)word與Excel的處理
這篇文章主要介紹了Python?pywin32實現(xiàn)word與Excel的處理,pywin32處理Word大多數(shù)用于格式轉換,因為一般讀寫操作都可以借助python-docx實現(xiàn),除非真的有特殊要求,但大部分企業(yè)對Wrod操作不會有太多復雜需求2022-08-08Python word文本自動化操作實現(xiàn)方法解析
這篇文章主要介紹了Python word文本自動化操作實現(xiàn)方法解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-11-11Python使用__new__()方法為對象分配內存及返回對象的引用示例
這篇文章主要介紹了Python使用__new__()方法為對象分配內存及返回對象的引用,結合實例形式分析了Python對象初始化及內存操作相關使用技巧,需要的朋友可以參考下2019-09-09matplotlib.subplot()畫子圖并共享y坐標軸的方法
Matplotlib的可以把很多張圖畫到一個顯示界面,本文主要介紹matplotlib.subplot()畫子圖并共享y坐標軸的方法,需要的朋友們下面隨著小編來一起學習學習吧2021-05-05