Настройка среды PyQt5 + конфигурация + как запустить сгенерированную программу .py

Python

Установка и настройка PyQt5

Установить

Вы можете загрузить связанные с pyqt библиотеки прямо в настройках pycharm, в основном скачать sip, PyQt5, PyQt5-tools
在这里插入图片描述

настроить

Откройте PyCharm, откройте «Файл» -> «Настройки» -> «Внешние инструменты», щелкните знак «плюс», чтобы добавить свои собственные инструменты, и выполните следующую настройку:

  1. пьюическая конфигурация
    Name:Pyuic
    Group:Qt
    Программа: D:\python\untitled1\venv\Scripts\python.exee (ваш собственный путь к Python)
    Аргументы: -m PyQt5.uic.pyuic Имя файла Имя файлаИмя файла -o Имя файла без расширений Имя файлаБез расширенияИмя файлаБез расширения.py
    Рабочий каталог: FileDirFileDirFileDir

Адрес после «Программы» — это адрес python.


2. Конфигурация QTdesigner
3.
Name:QtDesigner
Group:Qt
Programs:D:\python\untitled1\venv\Scripts\python.exe
Рабочий каталог: P r o j e c t File D i r ProjectFileDirProjectFileDir

Адрес после «Программы» — это адрес python.

Ошибка при поиске спецификации модуля для «PyQt5.uic.pyuic» (ModuleNotFoundError: нет модуля с именем «PyQt5») решение проблемы

Причина этой проблемы в том, что файл python.exe, который вы импортировали, не из вашего проекта.Эта проблема показывает, что вы используете pycharm, но импортированный вами python.exe находится в каталоге python.Вам нужно только добавить вышеуказанное в конфигурации pyuic измените адрес python.exe на pycharm в вашем файле.
(Если вы не можете найти его, просто выполните поиск непосредственно в папке)

построить пользовательский интерфейс

Первый открытый QTdesigner в pycharm

Вы можете создать свой интерфейс в QT, поиграть в него самостоятельно здесь.

Затем сохраните его в каталоге проекта и измените на имя .ui, после чего вы сможете увидеть его в pycharm.

Сгенерируйте программу .py и запустите

Создать программу .py

Щелкните правой кнопкой мыши только что созданную программу .ui и выберите pyuic.

Измените программу .py

Только что сгенерированная программа .py не генерирует оконную программу, нам все еще нужно внести изменения, вот простые изменения.
Исходный сгенерированный код выглядит следующим образом:

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'untitled.ui'
#
# Created by: PyQt5 UI code generator 5.15.1
#
# 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(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(260, 220, 72, 15))
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        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.label.setText(_translate("MainWindow", "JHKJGJKGK"))

Измененная программа выглядит следующим образом:

import untitled    # 需要运行的.py文件名
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 600)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(260, 220, 72, 15))
        self.label.setObjectName("label")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 800, 26))
        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.label.setText(_translate("MainWindow", "JHKJGJKGK"))




if __name__ == '__main__':
    app = QApplication(sys.argv)    # 创建应用程序
    mainwindow = QMainWindow()      # 创建主窗口
    ui = untitled.Ui_MainWindow()      # 调用中的主窗口
    ui.setupUi(mainwindow)          # 向主窗口添加控件
    mainwindow.show()               # 显示窗口
    sys.exit(app.exec_())           # 程序执行循环

Главное добавить основную форму для его использования и отображения, а это всего лишь библиотека.

Эффект