Cree rápidamente una aplicación GUI simple con PyQt5

1. Introducción

Los tres marcos comúnmente utilizados para la GUI de Python son: Tkinter, wxpython, PyQt5

PyQt5 se basa en Qt y es una combinación de Python y Qt, que puede escribir aplicaciones GUI multiplataforma en lenguaje Python

En comparación con Tkiner y wxpython, PyQt5 utiliza la herramienta de visualización integrada Qt Designer para el diseño de la interfaz, que puede desarrollar rápidamente una aplicación GUI poderosa y hermosa.

2. Instalación

Tome Mac OSX como ejemplo, la operación bajo PC es similar.

Primero, instale la aplicación qt dentro del sistema

python学习交流群:660193417###
# 安装qt
brew install qt

Luego, instale las dos bibliotecas dependientes sip y pyqt5 en el entorno virtual de Python

# 安装依赖sip
pip3 install sip
 
# 安装依赖pyqt5
pip3 install pyqt5

A continuación, configure las herramientas externas en Pycharm y cree dos nuevos comandos: Qt Designer y PyUIC

# Qt Designer 配置
Program:/usr/local/Cellar/qt/5.14.1/libexec/Designer.app
Working directory:/usr/local/Cellar/qt/5.14.1/libexec
 
# PyUIC
# Python环境路径
Program:/usr/local/bin/python3.7
# 参数
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 
# 路径【固定】
Working directory:$ProjectFileDir$
# Qt Designer 配置
Program:/usr/local/Cellar/qt/5.14.1/libexec/Designer.app
Working directory:/usr/local/Cellar/qt/5.14.1/libexec
 
# PyUIC
# Python环境路径
Program:/usr/local/bin/python3.7
# 参数
Arguments:-m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.py 
# 路径【固定】
Working directory:$ProjectFileDir$

Entre ellos, en el primer paso de instalar la carpeta de la aplicación Qt, busque los dos archivos Designer.app y libexec, y configúrelos.Dado que
Por favor agregue la descripción de la imagen
los archivos generados por QtDesigner son archivos *.ui, necesita usar el pyuic en pyqt5 para convertir los archivos
Por favor agregue la descripción de la imagen
de la interfaz de usuario en archivos de Python.Finalmente, puede abrir rápidamente la interfaz del diseñador y la interfaz de usuario para el archivo py directamente en Pycharm.
Por favor agregue la descripción de la imagen

3. Introducción a las funciones comunes

QtDesigner es una herramienta de diseño de GUI muy potente. El formato de archivo generado es: *
Por favor agregue la descripción de la imagen
.ui QtDesigner incluye principalmente las siguientes 6 partes:

Área de interfaz de diseño principal Área
de control Área
de propiedad de control Área
de función de señal y ranura Área
de imagen de recursos Área
de árbol de estructura de control

en,

Área de interfaz de diseño principal: utilizada para la edición de ventanas, el área de visualización final de la GUI

Área de control: contiene controles como texto, cuadros de entrada, selectores, contenedores, etc., que se pueden arrastrar directamente a la ventana para el diseño

Área de propiedades: se utiliza para definir las propiedades del control, incluidos: contenido, tamaño de fuente, ancho y alto

Área de función de señal y ranura: Es muy conveniente especificar un detector de eventos para un control, como: clic, evento de selección, etc.

Área de imágenes de recursos: se utiliza para importar archivos de recursos locales y usarlos en controles, como imágenes

Área de árbol de estructura de control: puede mostrar la relación estructural entre los controles de manera muy intuitiva

4. Toma un ejemplo

Paso 1, arrastramos 3 botones y 2 cuadros de entrada desde el área de control al área de diseño de la interfaz
Por favor agregue la descripción de la imagen
Paso 2, seleccione el control, haga clic con el botón derecho para agregar propiedades al control, como: contenido del control, nombre del control (equivalente a id) , para Algunas configuraciones de propiedades complejas deben establecerse por separado en el área de propiedades

Después de editar la interfaz de la interfaz de usuario, se generará localmente un archivo *.ui
Por favor agregue la descripción de la imagen
Paso 3, seleccione el archivo *.ui y use el comando PyUIC en Pycharm para convertir el archivo ui en un archivo py

# ui文件转为py文件
from PyQt5 import QtCore, QtGui, QtWidgets
 
class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(800, 790)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(130, 80, 111, 41))
        self.pushButton.setObjectName("pushButton")
        self.username = QtWidgets.QLineEdit(self.centralwidget)
        self.username.setGeometry(QtCore.QRect(260, 80, 271, 41))
        self.username.setObjectName("username")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(130, 150, 111, 41))
        self.pushButton_2.setObjectName("pushButton_2")
        self.password = QtWidgets.QLineEdit(self.centralwidget)
        self.password.setGeometry(QtCore.QRect(260, 150, 271, 41))
        self.password.setObjectName("password")
        self.login = QtWidgets.QPushButton(self.centralwidget)
        self.login.setGeometry(QtCore.QRect(260, 230, 141, 61))
        self.login.setObjectName("login")
        MainWindow.setCentralWidget(self.centralwidget)
        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", "用户名:"))
        self.pushButton_2.setText(_translate("MainWindow", "密码:"))
        self.login.setText(_translate("MainWindow", "登录"))

Paso 4, agregue un evento de clic para el botón

Use la forma de control name.signal.connect (función de ranura) para agregar un detector de eventos de clic para el control

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        # 为登录按钮指定事件
        # clicked:信号,login_met:槽函数
        self.login.clicked.connect(self.login_met)
 
        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
 
    def login_met(self):
        """
        登录事件(槽函数)
        :return:
        """
        # 用户名输入框的内容
        username = self.login.text()
        # 密码输入框的内容
        password = self.password.text()
 
        print("输入的用户名是:", username, "密码是:", password)

Paso 5, mostrar la interfaz

Finalmente, cree un nuevo archivo py, cree una instancia de un objeto QApplication y muestre la ventana principal creada anteriormente.

import sys
 
from PyQt5.QtWidgets import QApplication, QMainWindow
 
# 界面文件
from temp import *
class CustomUI(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
        super(CustomUI, self).__init__(parent)
        self.setupUi(self)
if __name__ == '__main__':
    app = QApplication(sys.argv)
    cutomUI = CustomUI()
    cutomUI.show()
    sys.exit(app.exec_())

Cabe señalar que esta parte del contenido es solo para llamar a la lógica de visualización de la interfaz GUI, y hay pocos cambios en el proceso de desarrollo del proyecto real.
Por favor agregue la descripción de la imagen

5. Resumen

A través del ejemplo anterior, es muy conveniente usar PyQt5 para construir GUI.La mayor parte del trabajo se puede hacer en QtDesigner, luego regresar a Pycharm, convertir a archivo py, escribir señales y funciones de ranura, y desarrollar rápidamente la interfaz de usuario de gráficos GUI.

Supongo que te gusta

Origin blog.csdn.net/m0_67575344/article/details/124369042
Recomendado
Clasificación