【PyQt】記錄一次完整程序設計及打包,並說說一些坑

工具:Pycharm

目錄

1. 使用QtDesigner設計程序頁面(一個輸入框、一個輸出框、一個按鈕、設置背景圖片)

2. 使用PyUIC轉爲python文件

3. 處理好按鈕的事件監聽、業務處理

4. pyinstaller打包成exe

5. 生成一個快捷方式,方便訪問


1. 使用QtDesigner設計程序頁面(一個輸入框、一個輸出框、一個按鈕、設置背景圖片)

首先file->settings->Tools添加工具

(原因嘛,一個是方便弄完的文件在項目工程目錄直接生成,方便;另一個是不用每次都要去找到原始位置,打開軟件):

添加QtDesigner:

其中Program點擊目錄自行找,我的是D:\python\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe。沒有的童鞋請裝好pyqt5_tools庫再找。

添加PyUIC:

arguments設爲-m PyQt5.uic.pyuic  $FileName$ -o $FileNameWithoutExtension$.py

其中Program點擊目錄自行找,我的是D:\python\python.exe

接着就可以右鍵工程目錄,進入QtDesigner

背景圖片先鋪個ListView上去即可,設置stylesheet的背景樣式:

等生成python文件後改爲self.listView.setStyleSheet("background-image: url(1.jpg);")

這裏注意,在QtDesigner設置背景圖片,需要你先創建qrc文件,再引用圖片,才能顯示圖片。但是到pycharm,看不到圖片的,需要將路徑改爲./project/1.jpg,其中project是你的項目,裏面放着1.jpg以及你的python文件,這樣才能顯示圖片。但是打包的時候,這樣圖片會找不到,所以直接點,寫成1.jpg,打包完圖片放文件夾裏面即可

2. 使用PyUIC轉爲python文件

搞完QtDesigner,保存,在項目中找到ui文件,右鍵運行PyUIC,將ui文件轉爲python文件:

python文件末尾加上:

if  __name__=="__main__":
    import  sys
    app=QtWidgets.QApplication(sys.argv)
    widget = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(widget)
    widget.show()
    sys.exit(app.exec_())

3. 處理好按鈕的事件監聽、業務處理

添加按鈕監聽:

# 綁定點擊事件
self.pushButton.clicked.connect(self.analyse)

 填寫業務邏輯:

     # 按鈕監聽
    def analyse(self):
        input = self.textEdit.toPlainText()  # 獲取文本框內容
        if len(input) < 20:
            self.textEdit_2.setText('請輸入正確的古詩詞,再進行分析!')
            return
        # ...

4. pyinstaller打包成exe

系統資源管理器打開到pycharm項目目錄下,按shift+鼠標右鍵,打開powershell(命令行也行,切換到該目錄咯)。輸入pyinstaller -D 你的文件名.py進行打包(例如我的是pyinstaller -D main.py)。這樣的好處是,-D可以將打包成的exe拖到命令行,查看錯誤;如果你用的參數是-F,則打包成一個exe,而且拖到命令行沒法看錯誤,不推薦。

打包完看dist目錄裏的即可,將上述的1.jpg背景圖片放到exe同級目錄即可

5. 生成一個快捷方式,方便訪問

注意需要設置相對路徑,如果你右鍵生成exe的快捷方式,那麼自動生成的是絕對路徑。

相對路徑的快捷方式,最好不用資源管理器的explorer.exe的形式,而用命令行的形式,我的是:%windir%\system32\cmd.exe /c start main\main.exe

起始位置不要設置

其中,main是dist目錄裏的項目文件目錄,要的也就是這個,快捷方式也放在同級目錄下,而main.exe則是執行的文件。

當然經測試,1.jpg還需放快捷方式同級目錄纔行。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章