eclipse將pyqt5將QtDesigner生成的ui檔案轉換為可執行的Python檔案
pyqt5將QtDesigner生成的ui檔案轉換為可執行的Python檔案
python和pyqt5的安裝
Qt Designer的安裝
找到python的預設安裝目錄,每臺電腦都不一樣,如果實在找不到在下圖紅線圈出的位置輸入python進行查詢
在python預設安裝目錄下的Lib資料夾下找到site-packages資料夾並開啟,檢視有無designer.exe檔案,如果有直接開啟並跳到將ui檔案轉換為python檔案這一步。如果沒有找到,有兩種方法解決:
1、開啟cmd視窗,輸入pip3 install pyqt5-tools安裝designer.exe。
等待一會,就可安裝完成,然後在Python/Lib/site-packages/pyqt5-tools目錄下可找到designer.exe檔案,右鍵傳送到桌面快捷方式,以後就可以直接點選桌面上的快捷方式開啟designer.exe檔案。
2、如果安裝過qt creator的話,在C:\Qt\Qt5.8.0\5.8\mingw53_32\bin目錄下即可找到designer.exe檔案,右鍵傳送到桌面快捷方式,以後就可以直接點選桌面上的快捷方式開啟designer.exe檔案。
將ui檔案轉換成python檔案
開啟designer.exe,寫一個簡單的Hello pyqt5視窗程式
點選Widget,並點選建立按鈕
拖入一個label控制元件,並修改文字為“Hello pyqt5”
然後按下Ctrl+S,修改ui檔名並儲存。我是修改成了test名字並儲存到了F盤。
可以關閉designer.exe檔案了。然後開啟cmd視窗,輸入pyuic5並回車,如果安裝前面敘述的安裝方法,應該會出現下圖這種情況,表示pyuic5是一個可以識別的命令。
然後輸入pyuic5 -o 目標python檔案的絕對路徑 源ui檔案的絕對路徑 ,注意空格,我把目標python檔案也儲存在了F盤,並命名為test.py檔案。
我們就能看到F盤下生成了一個test.py檔案,開啟該檔案,我們可以看到以下內容
直接執行該檔案,你會發現什麼都沒有發生,這是因為我們只是建立了一個視窗類,還沒有例項化。在匯入包的部分新增程式碼
import sys
在檔案末尾新增程式碼
if __name__ == "__main__": app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Ui_Form() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
新增完成後你會看到全部程式碼是這樣的:
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'F:\test.ui'
#
# Created by: PyQt5 UI code generator 5.10.1
#
# WARNING! All changes made in this file will be lost!
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(400, 300)
self.label = QtWidgets.QLabel(Form)
self.label.setGeometry(QtCore.QRect(140, 90, 171, 61))
self.label.setObjectName("label")
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.label.setText(_translate("Form", "Hello pyqt5"))
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Form()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
編譯執行之後:
哇,窗口出現了哦~(*^▽^*)
簡化轉換步驟
由於每次轉換都要寫一次命令列,十分麻煩,我們可以這樣操作來簡化步驟。建立一個txt檔案,向txt檔案中寫入pyuic5 -o test.py test.ui 文字(python檔案和ui檔名用什麼都可以)
然後在任意一個盤新建一個資料夾並命名,不妨在F盤下建立資料夾並命名為test,然後把該txt檔案儲存至該資料夾下並命名為test.txt,將test.txt副檔名改為bat。將ui檔案也移動到該資料夾下,並命名為test檔案中的ui檔名。
點選是。然後雙擊test.bat檔案,我們會看到dos黑視窗一閃而過,然後test資料夾下就自動生成了與test.ui檔案對應的test.py檔案
儲存好這個test.bat檔案,每次需要將ui檔案轉換成python檔案時,都可以把ui檔案命名為test.bat中的ui檔名然後移動至test資料夾下,雙擊直接執行test.bat檔案就可以直接生成python檔案了,是不是簡便很多了呢?(*^▽^*)