Registro de prueba para principiantes de PyQt5 (1): desde la instalación de PyQt5 hasta el salto entre ventanas

Prólogo : Este registro es una nota simple durante el proceso de autoaprendizaje del autor. Explica el proceso desde la instalación de la biblioteca hasta finalmente empaquetarla en .exe. Está dividido en tres partes para que los principiantes puedan consultar e intercambiar. Por favor, lectores si hay alguna afirmación incorrecta Para obtener consejos, la primera parte de la lista se encuentra a continuación.

1. Preparación preliminar

1. Instale PyQt5

El valor predeterminado pip install pyqt5debido al tiempo de espera de respuesta puede fallar, reflejando el uso doméstico (como una imagen reflejada de Tsinghua) instalación más rápida, una primera biblioteca es pyqt5, la segunda es el kit de herramientas de interfaz visual (Qt Designer), comando cmd como sigue:

$ pip install pyqt5 -i https://pypi.tuna.tsinghua.edu.cn/simple
$ pip install pyqt5-tools -i https://pypi.tuna.tsinghua.edu.cn/simple

Pruébelo después de la instalación. Si se abre una ventana, el código de prueba es el siguiente:

import sys
from PyQt5.QtWidgets import QWidget, QApplication

app = QApplication(sys.argv)
widget = QWidget()
widget.resize(300, 200)
widget.setWindowTitle("Hello, PyQt5!")
widget.show()
sys.exit(app.exec())

Inserte la descripción de la imagen aquí

2. Configuración de asociación de la herramienta PyCharm

( El IDE utilizado por el autor es PyCharm  ) Si no desea escribir mucho código para generar la interfaz usted mismo, debe usar Qt Designer, en el que se arrastran y sueltan varios controles, y puede concentrarse en la implementación de la función. La ruta de inicio de Qt Designer está en el directorio de instalación de Python:Lib\site-packages\pyqt5_tools\Qt\bin

Este es el programa → Inserte la descripción de la imagen aquí

Sin embargo, es demasiado problemático abrirlo cada vez. Puede agregar extensiones de herramientas a PyCharm para facilitar el inicio. A continuación, se explica cómo asociar herramientas:
Primero, abra el panel Configuración de PyCharm y busque Herramientas externas;
Inserte la descripción de la imagen aquí

Agregue la herramienta QtDesigner, complete la ruta del designer.exe anterior en Programe y complete el directorio de trabajo $FileDir$;
Inserte la descripción de la imagen aquí

Agregue la herramienta PyUic para convertir el archivo de interfaz (.ui) editado por Qt Designer en un archivo de Python (.py), complete la ruta de python.exe en el directorio de instalación de Python en Programe, complete los argumentos y complete el -m PyQt5.uic.pyuic $FileName$ -o $FileNameWithoutExtension$.pydirectorio de trabajo $FileDir$;
Inserte la descripción de la imagen aquí

Después de la configuración, busque QtDesigner en Herramientas en la barra de menú y haga clic para comenzar Nota : PyUic no se usa aquí, y continuaré presentándolo más adelante.
Inserte la descripción de la imagen aquí

Resumen : La instalación de pyqt5 realmente me tomó mucho tiempo. La instalación del punto de carga predeterminado es demasiado lenta y fácil de fallar. Además, si la importación de from no es exitosa, es posible que deba copiar las carpetas relacionadas con pyqt5 de Lib \ site-packages en el directorio de instalación de Python a la ruta del proyecto En Lib \ site-packages , esto está relacionado con la ruta de trabajo del intérprete. La instalación normal no debería ser un problema jaja.

2. Comience a usar Qt Designer

La siguiente es la interfaz de Qt Designer. Puede arrastrar y soltar varios controles en el formulario de la izquierda, y simplemente puede establecer las propiedades de control a la derecha. Varios formularios tienen diferentes métodos y escenarios de uso para elegir según sus necesidades. Puede crear un formulario de tipo Widget primero;
Inserte la descripción de la imagen aquí

El autor usa PyQt5 para agregar una interfaz de operación al rastreador y, finalmente, se puede empaquetar en un archivo .exe para facilitar el inicio y la operación. La siguiente figura es una ventana de selección de función inicial. Haga clic en el botón para saltar a una página de función diferente, que es la página de inicio / página de navegación. (El embellecimiento de la interfaz no se realizará en este experimento. El contenido de este corchete se usa para dar excusas por la interfaz fea );
https://s1.ax1x.com/2020/05/11/YGBBUx.png

Cree un botón mediante el control de botón pulsador de la izquierda y establezca el nombre del botón de la derecha, que es el nombre del objeto operado en Python. La convención de nomenclatura del autor es "nombre de control abbreviation_location_window_function description", como el primer botón Para: Después de hacer clic en la ventana principal, ingresar a la página de rastreo de información básica ( porque se almacena en .xlsx luego del rastreo, se llama getXlsx, lo cual es un poco tedioso, jaja, el método de naming no es profesional, principalmente para facilitar la memoria, para no encontrarlo después. Esta cosa );
Inserte la descripción de la imagen aquí

Después de dibujar la interfaz, puede guardarla en el directorio del proyecto. Cree una carpeta para almacenar los archivos de la interfaz. El archivo guardado es un archivo .ui ( también llamado haha ​​= v =: descripción de la función + tipo de formulario ). para usar lo mencionado anteriormente PyUic! Se encuentra en el archivo de interfaz de usuario derecho generado en PyUic, haga clic en, luego generaría un archivo .py correspondiente, preste atención : la necesidad de modificar cada vez después de .ui en Qt Designer a PyUictiempo, y no se recomienda modificar el .py correspondiente, Lo principal es no escribir el código de función, porque elPyUic .py correspondiente también se restablece después del reinicio ;
Inserte la descripción de la imagen aquí

A continuación, cree una página getXlsxWidget para rastrear información básica. El diseño no se usa, y los controles son un poco jaja, y luego divídalos lentamente en bloques. El rastreador utilizado por el autor se utiliza para rastrear una determinada lista de información de un determinado sistema. Según las necesidades de la consulta, se establecen varios controles para recibir parámetros, y hay algunos botones de función obligatorios y un panel para la información de retroalimentación (parte inferior derecha Ese mechón de gris ).
Inserte la descripción de la imagen aquí

De esta forma, se distribuyen la página básica y los controles.
Resumen : Recuerde que después de actualizar la interfaz en Qt Designer, use PyUic para reconstruir .ui para generar el .py correspondiente.

En tercer lugar, la realización del salto entre la pantalla de inicio y la ventana.

Ahora que se han construido dos ventanas, ¡comencemos a saltar entre ellas jajaja! (Hasta ahora, estoy un poco emocionado, el estilo de escritura ha cambiado levemente) Primero crea un nuevo .py dedicado a varias funciones de la interfaz, yo lo gestionaré Se llama MainFuntion.py. Luego inicie el código, importe los módulos necesarios de PyQt5 e importe el .py correspondiente a la interfaz creada anteriormente;

from PyQt5.QtWidgets import QWidget,QApplication,QMessageBox
from QtFile import mainWidget,getXlsxWidget #之前建的两个页面

Continúe codificando la clase de función de la página de inicio, deje que herede la interfaz de usuario de Qwidget y su propia ventana __init__, escriba la configuración asociada con el control en ella y escriba el método para realizar la función. La sintaxis de Qt es bastante fácil de entender, como la operación básica de hacer clic en un botón: "un botón. Se hace clic. Conectado para ejecutar (un método)";

'''--------------- # 主页功能类-----------------'''
class MainForm(QWidget,mainWidget.Ui_Form):
    def __init__(self):
        super(MainForm, self).__init__()
        self.setupUi(self)
        self.pB_main_getXlsx.clicked.connect(self.open_getXlsxWidget) # 点击pB_main_getXlsx按钮执行open_getXlsxWidget()
        self.pB_main_getDetail.clicked.connect(self.hint)
        self.pB_main_other.clicked.connect(self.hint)
        
    def open_getXlsxWidget(self): # 打开爬取基本页窗口
        self.hide() #隐藏主页窗口
        self.wid = getXlsxForm() # 实例化另一个页面的对象
        self.wid.show() # 打开新页面
        self.wid.setWindowTitle("爬取基本页信息")
        
    def hint(self):
        QMessageBox.about(self,"说明","该功能有待拓展!")

El código anterior se realiza haciendo clic en el botón en la página de inicio para abrir una nueva página y ocultar la página de inicio. El diagrama esquemático se muestra a continuación. ¿Cuál QMessageBox.aboutes la función de los cuadros emergentes?
Inserte la descripción de la imagen aquí

La siguiente es la página de función real, reescribe el evento de cierre de ventana y regresa a la página original después de cerrar la ventana actual;

'''------------------- # 爬取基本页功能类 --------------------'''
class getXlsxForm(QWidget,getXlsxWidget.Ui_Form):
    def __init__(self):
        super(getDetailForm, self).__init__()
        self.setupUi(self)

    def closeEvent(self, event): #重写closeEvent(),关闭后返回主窗口
        self.wid = MainForm()
        self.wid.show()
        self.wid.setWindowTitle(strTitle)

¡OKAY! Así que probemos el efecto, más el código en ejecución, la parte comentada es la pantalla de inicio del programa utilizado para instalar B, vea la figura a continuación. Debido a que no hay nada que cargar, configure manualmente la sleeppantalla para que permanezca por un tiempo Nota : la finishpantalla de inicio debe finalizar después de que se abra la página principal ;

'''-------------------# 窗口运行 ---------------------'''
if __name__ == '__main__':
    app = QApplication(sys.argv)
    widget = getXlsxForm()
    strTitle = "NewSysCrawler测试版20.4.16"
    # splash = QSplashScreen(QPixmap("./QtFile/images/welcome.png")) # 加载启动画面
    # splash.showMessage("Beta version 20.4.7", Qt.AlignLeft | Qt.AlignBottom, Qt.white) # 设置文字:左下角、白色
    # splash.setFont(QFont('Microsoft YaHei UI', 12)) # 设置字体
    # splash.show() # 显示启动画面
    # time.sleep(1.5)
    widget.setWindowTitle(strTitle)
    widget.show()
    # splash.finish(widget) # 结束启动
    sys.exit(app.exec())

Inserte la descripción de la imagen aquí

Resumen : El núcleo de esta parte es "un botón. Se hace clic. Conectado para ejecutar (un método)". Es suficiente usar PyQt5 para realizar una operación simple y dominar este artículo (niebla ... rocío de luz).


La siguiente parte continuará explicando cómo obtener parámetros de la interfaz y usar el control de calendario, configurar los iconos de los botones, las sugerencias de contenido, etc.

Supongo que te gusta

Origin blog.csdn.net/zohan134/article/details/106156402
Recomendado
Clasificación