一、pyqt5
1.ui轉py文件:
pyuic5 -o main.py mainwindow.ui
稍加觀察一下這個main.py文件就可以察覺,其中只包含一個名叫Ui_MainWindow的類,類之外沒有可以執行的代碼,當然現在執行這個文件什麼都不會發生。這時候需要對main.py添加一點代碼使得設計好的UI能夠出現在我們面前。
- main.py文件已經自己引入了PyQt5庫中的幾個大類,QtCore, QtGui, QtWidgets;這不夠,我們還需要引入sys庫,所以添加:
import sys
- 除次之外,我們需要在class之外添加一些代碼,將類實例化,並且運行這個實例:
if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
2.信號和槽連接
self.pushButton.clicked.connect(lambda :self.函數(參數1,參數2))
二、py轉exe
1.pyinstaller
離線安裝會有幾個依賴包future、pefile、pywin32-ctypes,按順序裝完這三個再安裝pyinstaller;
命令行執行:pyinstaller -Fw main.py
此處打包一個不顯示dos窗口且在dist文件夾下形成一個exe文件的包,有其它需求可百度Fw等參數。
打包完成運行會提示錯誤,需要拷貝:Anaconda3/Library/plugins下的platforms文件夾到dist文件夾下。
提示:
使用pyinstaller打包後,exe文件會比較大,這是由於默認的把所有的包都集成到裏面了,如果想要文件小一點,可以安裝一個純淨版的python,只安裝需要的包,或者打包時候打包成文件夾的形式,再刪除不需要的包。
2.cxfreeze
安裝直接下載安裝就行,https://www.lfd.uci.edu/~gohlke/pythonlibs/
打包時候需要使用絕對路徑:cxfreeze D:/hello.py --target-dir D:/123
需要注意的是,安裝完可能會提示沒有cxfreeze這個命令,參考往上查到的,在Anaconda3/Scripts文件夾下添加一個cxfreeze.bat文件,內容如下:
@ echo off
D:\Anaconda3\python.exe D:\Anaconda3\Scripts\cxfreeze %*
參考文獻:
1、https://www.jianshu.com/p/43300f85af3e
2、https://www.zhihu.com/question/41211581