前序
之前學習了一款GUI圖形界面設計的Tkinter庫,但是經大佬的介紹,PyQT5全宇宙最強,一臉的苦笑
毫不猶豫的選擇轉戰PyQT5,在學習之前需要先安裝一些必須程序,在一番查閱后,發現PyQt5的學習存在兩種
學習工具,一種是Eric6,單獨的圖形界面編寫腳本,(還是用python編寫的),另一個就是直接裝在pycharm里的
外部工具。因為一直一樣來用慣了pycharm,所以選擇了pycharm的安裝方法
目錄
首先就是pip安裝PyQt5:
pip install PyQt5
然后需要安裝Qt工具,也選擇pip安裝:
pip install PyQt5-tools
安裝完成之后先確認一下安裝位置,因為之后用的上,正常的話,會在你的python的安裝目錄下的
\pythonx.x\Lib\site-packages目錄下,如圖:
然后進入pycharm的File下的settings,選擇External Tools,
因為我已經安裝好了,所以窗口有工具的顯示,
沒有安裝的應該是空白的或者其他你之前安裝好的工具,點擊上方的綠色加號
先引入Qt設計的工具(這個工具可以以控件拖拽的形式設計自己的界面程序)
在加號彈出的顯示框中輸入如圖的內容
Name:QtDesigner
Program:之前PyQt5-tools目錄下的designer.exe文件
Working directory:$FileDir$
這樣,QttDesigner就完成了
再引入轉代碼的PyUIC工具(PyUIC可以將前面設計的程序轉換成python代碼)
如圖設置,所見即所得,Program的設置是python目錄下的Script下的pyuic5.exe
Argument的設置如下
-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py
如此安裝就完成了
使用的話,在需要的目錄下右鍵選擇External Tools選擇QtDesigner進行DUI設計,然后保存,
再對.ui文件相同方法選擇PyUIC,就可以轉化成為.py文件
有一個問題是這個時候的python代碼點擊運行是沒有彈出你設計好的窗口的
1、在轉換的.py文件內刪除以下三行:
MainWindow.setCentralWidget(self.centralwidget)
MainWindow.setMenuBar(self.menubar)
MainWindow.setStatusBar(self.statusbar)
2、在底部添加如下代碼:
if __name__=="__main__": import sys app = QtWidgets.QApplication(sys.argv) widget = QtWidgets.QWidget() ui = Ui_MainWindow() ui.setupUi(widget) widget.show() sys.exit(app.exec_())
這樣雖然可以達到設計與代碼的界面邏輯工作,但是只適用於你的GUI設計一次就設計完成,后續不用再進行更改,
不然修改后的.ui文件再轉換成.py文件的話,之前的代碼就會被覆蓋,所以實用度不大
再介紹一種新的方法,將設計與邏輯分離,只用建立一個新的.py文件調用界面文件,這個新的.py文件稱為邏輯文件,
也可以實現業務文件。界面文件和邏輯文件是兩個分開的相對獨立的文件,通過上述的方法就可以實現界和邏輯的分離。
實現上述理論的方法很簡單,新建的.py文件代碼如下:
import sys from PyQt5.QtWidgets import QApplication, QMainWindow from MyFirstUI import * class MyMainWindow(QMainWindow, Ui_MainWindow): def __init__(self, parent=None): super(MyMainWindow, self).__init__(parent) self.setupUi(self) if __name__ == '__main__': app = QApplication(sys.argv) myWin = MyMainWindow() myWin.show() sys.exit(app.exec_())
需要注意的是:新建的文件,需要和前面的文件放在一起,另外代碼中斜體下划線的字是你自己.ui文件的文件名,
要自己修改。這樣的話,兩邊都可以修改,又不會相互影響,大功告成!!!!
我們在設計GUI的時候,常常需要用到一些資源文件,比如圖片這樣的文件,通常較使用的方法是將資源文件
轉換成Python文件,然后引用Python文件。
首先需要在Pycharm中新建一個.qrc文件,在文件里面填入如下內容:
<rcc version="1.0"> <qresource> </qresource> </rcc>
然后在Qt Designer中創建一個Widget窗口,找到資源瀏覽器,打開之前創建的.qrc文件,然后再導入需要使用的資源文件,
如圖,左邊導入文件叫apprcc_rc.qrc,右邊創建一個存放資源文件的文件夾(pic),再導入資源文件,完成后保存退出
注意:.qrc文件轉換成功以后是同名的.py文件,但是Qt Designer導入文件默認是加_rc.py格式的,
所以要么文件名為xxx_rc.qrc再轉換,要么就轉換完了以后再重命名為加_rc.py的文件
會發現之前的.qrc文件里面的代碼是XML格式的,然后開始講解在Pycharm中如何將.qrc文件轉換成py文件
<RCC> <qresource prefix="pic"> <file>images/cartoon1.ico</file> <file>images/cartoon2.ico</file> <file>images/cartoon3.ico</file> <file>images/cartoon4.ico</file> <file>images/python.jpg</file> </qresource> </RCC>
進入pycharm的File下的settings,選擇External Tools
Program:自己Python安裝路徑下的Script下的pyrcc5.exe
Argument:
$FileName$
-o
$FileNameWithoutAllExtensions$.py
Working directory:。。。。
這樣就可以使用資源文件了