• PyCharm配置Anaconda PyQt5开发环境


    1. 环境安装

    我们需要安装相关的 Python 依赖包,首先安装 PyQt5

    pip install PyQt5
    
    • 1

    安装常用的 Qt 工具:

    pip install PyQt5-tools
    
    • 1

    PyQt5-tools 的路径(D:\Anaconda3_Environments\envs\...\Lib\site-packages\pyqt5_tools)添加到环境变量中:

    在这里插入图片描述

    现在我们尝试能否导入 PyQt5,不报错说明安装成功:

    import PyQt5
    
    print(help(PyQt5))
    
    • 1
    • 2
    • 3

    2. PyCharm配置

    File-Settings-Tools 选项卡中点击 External Tools,然后点击加号添加 Qt Designerpyuid 两个选项,其中 Qt Designer 填写的内容如下:

    Name: 自定义
    Program: Qt Designer的安装路径(D:\...\site-packages\qt5_applications\Qt\bin\designer.exe)
    Arguments: 不填
    Working directory: $FileDir$
    
    • 1
    • 2
    • 3
    • 4

    pyuic 填写的内容如下:

    Name: 自定义
    Program: pyuic的安装路径(D:\Anaconda3_Environments\envs\...\Scripts\pyuic5.exe)
    Arguments: $FileName$ -o $FileNameWithoutExtension$.py
    Working directory: $FileDir$
    
    • 1
    • 2
    • 3
    • 4

    完成后即可在 PyCharm 的 Tools-External Tools 打开 Qt Designer:

    在这里插入图片描述

    我们创建一个简单的 UI 界面后保存至项目根目录的 UI 目录下:

    在这里插入图片描述

    然后需要将 test.ui 文件转换成 .py 文件,方便使用 PyCharm 查看修改,在 .ui 文件上右键,在 External Tools 中选择 pyuic,即可看到转换完成后的 .py 文件:

    在这里插入图片描述

    但是此时的文件是不能运行的,还需要在其前后添加相应的执行代码:

    # -*- coding: utf-8 -*-
    
    # Form implementation generated from reading ui file 'test.ui'
    #
    # Created by: PyQt5 UI code generator 5.15.9
    #
    # WARNING: Any manual changes made to this file will be lost when pyuic5 is
    # run again.  Do not edit this file unless you know what you are doing.
    
    
    from PyQt5 import QtCore, QtGui, QtWidgets
    
    
    class Ui_MainWindow(object):
        def setupUi(self, MainWindow):
            MainWindow.setObjectName("MainWindow")
            MainWindow.resize(1280, 720)
            self.centralwidget = QtWidgets.QWidget(MainWindow)
            self.centralwidget.setObjectName("centralwidget")
            self.horizontalLayoutWidget = QtWidgets.QWidget(self.centralwidget)
            self.horizontalLayoutWidget.setGeometry(QtCore.QRect(1090, 580, 160, 80))
            self.horizontalLayoutWidget.setObjectName("horizontalLayoutWidget")
            self.horizontalLayout = QtWidgets.QHBoxLayout(self.horizontalLayoutWidget)
            self.horizontalLayout.setContentsMargins(0, 0, 0, 0)
            self.horizontalLayout.setObjectName("horizontalLayout")
            self.pushButton = QtWidgets.QPushButton(self.horizontalLayoutWidget)
            self.pushButton.setObjectName("pushButton")
            self.horizontalLayout.addWidget(self.pushButton)
            self.pushButton_2 = QtWidgets.QPushButton(self.horizontalLayoutWidget)
            self.pushButton_2.setObjectName("pushButton_2")
            self.horizontalLayout.addWidget(self.pushButton_2)
            MainWindow.setCentralWidget(self.centralwidget)
            self.menubar = QtWidgets.QMenuBar(MainWindow)
            self.menubar.setGeometry(QtCore.QRect(0, 0, 1280, 21))
            self.menubar.setObjectName("menubar")
            MainWindow.setMenuBar(self.menubar)
            self.statusbar = QtWidgets.QStatusBar(MainWindow)
            self.statusbar.setObjectName("statusbar")
            MainWindow.setStatusBar(self.statusbar)
    
            self.retranslateUi(MainWindow)
            QtCore.QMetaObject.connectSlotsByName(MainWindow)
    
        def retranslateUi(self, MainWindow):
            _translate = QtCore.QCoreApplication.translate
            MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
            self.pushButton.setText(_translate("MainWindow", "OK"))
            self.pushButton_2.setText(_translate("MainWindow", "Cancel"))
    
    
    # ---------- 添加以下代码运行程序 ----------
    
    import sys
    from PyQt5.QtWidgets import QApplication, QMainWindow
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
        MainWindow = QMainWindow()
        ui = Ui_MainWindow()
        ui.setupUi(MainWindow)
        MainWindow.show()
        sys.exit(app.exec_())
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62

    现在运行 .py 代码即可看到设计的界面:

    在这里插入图片描述

  • 相关阅读:
    剑指Offer || 047.二叉树剪枝
    ODBC访问达梦数据库Ubuntu18.04 x86-x64(亲测有效)
    TI Sitara系列 AM64x开发板——TSN通信测试手册(下)
    maven本地仓库配置
    技术分析需谨慎,各位投资者应该这样做
    Linux FrameBuffer(二)- VMware虚拟机的Ubuntu系统FrameBuffer画图
    LCR 001. 两数相除
    华为云CDN,如何推动互联网行业健康发展?
    【Java设计模式 SOLID设计原则】四 ISP接口隔离原则
    算法沉淀——动态规划之子数组、子串系列(上)(leetcode真题剖析)
  • 原文地址:https://blog.csdn.net/m0_51755720/article/details/133744586