---
# System prepended metadata

title: Pyqt5 Designer 筆記
tags: [OpenCV, Python]

---

---
title: Pyqt5 Designer 筆記
tags: OpenCV,Python
---
**使用 python, Pyqt5, Pyqt5-tools 建立**

# 建立QtDesigner介面
**目錄**
[TOC]

## Step 1. 安裝套件
* 開啟cmd安裝PyQt5
    > pip install pyqt5 
* 安裝PyQt5-tools
    > pip install pyqt5-tools

## Step 2. 尋找Qt的designer
* 在 .\venv\Lib\site-packages\pyqt5_tools\Qt\bin 找到 designer.exe
![file_image](https://i.imgur.com/jcg3L5O.png)
* 開啟就能進行介面設計
---
當時遇到的問題是：
![error_image](https://i.imgur.com/a1Pk65m.png)

* 解决方法：
定位到.\Lib\site-packages\PyQt5\Qt\plugins，這個位置取決於你安裝的位置，將該目錄下的platforms文件夾複製到.\Lib\site-packages\pyqt5_tools\Qt\bin，並替換處於該目錄下的platforms內的文件。

* 再次打開designer.exe，此時問題應該已解決。
* 參考[網頁](https://www.cnblogs.com/focksor/p/13166970.html)。

## 實作範例
### Step1 
![image1](https://pic.pimg.tw/xdxdyayaya/1567515140-2791614330.png)

### Step2
![image2](https://pic.pimg.tw/xdxdyayaya/1567515140-1738651906_l.png)

### Step3 
![image3](https://pic.pimg.tw/xdxdyayaya/1567515140-3608624068_l.png)

### Step4
![image4](https://pic.pimg.tw/xdxdyayaya/1567515141-2068498436.png)

### Step5
開啟cmd下指令：
```Ternimal=
pyuic5 UI.ui -o UI.py
```
你將會在該檔案目錄下看到 UI.py生成。

### Step6
加入主要執行檔 code。
```python=
if __name__ == '__main__':  
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()

    ui.setupUi(MainWindow) 
    MainWindow.show()
    sys.exit(app.exec_())
```

### Step7
呼叫PushButtom 可以這麼寫。
```python=
self.pushButton.clicked.connect(self.AAA) 

self.pushButton_2.clicked.connect(self.BBB)

def AAA(self, MainWindow):
    print('AAA')

def BBB(self, MainWindow):
    print('BBB')
```
---
當時遇到的問題：將def另放在一個py檔，遇到的問題是找不到def那個呼叫。
之後我改成這樣就能執行：
```python=
self.pushButton.clicked.connect(lambda: class名稱.def名稱(self))
```

### Step8
呼叫 LineEdit 可以這麼寫。
```python=
word = self.lineEdit.text('請輸入數字')
```
當時是不知道如何呼叫到其他py檔，所以只在該py檔開函式做執行。

---

> 可以參考此[網站](https://blog.daychen.tw/2017/09/pyqt5-part-5-qt-designer-gui.html)。
> 
> 以下為某作業寫的。
![](https://i.imgur.com/tEfitWM.png)
