Try   HackMD

使用 python, Pyqt5, Pyqt5-tools 建立

建立QtDesigner介面

目錄

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
  • 開啟就能進行介面設計

當時遇到的問題是:

error_image

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

  • 再次打開designer.exe,此時問題應該已解決。

  • 參考網頁

實作範例

Step1

image1

Step2

image2

Step3

image3

Step4

image4

Step5

開啟cmd下指令:

pyuic5 UI.ui -o UI.py

你將會在該檔案目錄下看到 UI.py生成。

Step6

加入主要執行檔 code。

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 可以這麼寫。

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那個呼叫。
之後我改成這樣就能執行:

self.pushButton.clicked.connect(lambda: class名稱.def名稱(self))

Step8

呼叫 LineEdit 可以這麼寫。

word = self.lineEdit.text('請輸入數字')

當時是不知道如何呼叫到其他py檔,所以只在該py檔開函式做執行。


可以參考此網站

以下為某作業寫的。