pyqt下.ui檔案轉換為對應.py檔案的知識整理
阿新 • • 發佈:2019-02-11
大家都知道,在通過Pyqt4的designer工具建立介面.ui檔案後需要手動cmd命令將.ui檔案轉換為.py之後才能進行事件的編寫,如果遇到一次建立很多.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' # 記錄轉換成功的檔案數量 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檔案時出現了錯誤,在命令後加個-d可以列印錯誤資訊,發現是UI檔案中用了中文字型的緣故,改成英文字型就ok了,記錄一下,程式碼已修改。
同時,因為pyqt個人應用是免費的,但是用於商業用途就會收費,所以為了方便,還是推薦使用pip管理工具下載pyside庫編寫應用,教程百度有很多不在此贅述,用法和pyqt幾乎沒有什麼區別,編譯UI檔案的命令換成pyside-uic就可以了,注意!不論是pyuic4還是pysi-uic,這兩個exe檔案的系統環境變數都需要設定,否則會找不到命令。
更新於2018/2/22
程式碼添加了轉換版本pyqt5的選擇,但是轉換前請保證對應版本已經安裝好。