Cómo usar GUI Builder de Pyqt

Cómo usar GUI Builder de Pyqt

Pyqt es una popular biblioteca de Python utilizada para implementar aplicaciones gráficas en Python más fácilmente. Esta biblioteca viene con una herramienta GUI (interfaz de usuario gráfica) de GUI llamada Diseñador QT. La GUI se puede construir rápidamente en Python utilizando la función de arrastrar y soltar de esta biblioteca, aunque esta herramienta no tiene una instalación de depuración como el IDE estándar. Este tutorial le muestra cómo implementar la GUI utilizando la clase QT Designer de Pyqt.

Requisitos previos

Debe instalar la herramienta QT Designer antes de practicar los ejemplos proporcionados en este tutorial. Ejecute los siguientes comandos para instalar el Diseñador QT En su sistema:

$ sudo apt-get install QtTools5-Dev-Tools
$ sudo apt-get install QtTools5-Dev

Abra el diseñador QT

Ejecute el siguiente comando para cambiar la ubicación del directorio actual a la Diseñador QT carpeta.

$ cd/usr/lib/x86_64-linux-gnu/qt5/bin/

Ejecute el siguiente comando para abrir la aplicación QT Designer.

ps ./diseñador

Si el Diseñador QT se ha instalado correctamente, aparecerá la siguiente ventana. El Widget el cuadro que se muestra en el lado izquierdo de la ventana principal contiene varios widgets que puede usar para diseñar la interfaz de usuario de la aplicación. El Nueva forma La ventana se usa para crear una nueva ventana usando los botones predeterminados. Las ventanas que se muestran en el lado derecho de la ventana principal proporcionan información sobre los widgets que se pueden leer o modificar.

Cree el primer formulario utilizando el diseñador QT

Para comenzar a diseñar la interfaz para la aplicación Python, haremos clic en el Crear Botón en la siguiente ventana para abrir el cuadro de diálogo con dos botones predeterminados.

A continuación, diseñaremos un formulario de inicio de sesión utilizando el Etiqueta, edición de texto y widgets de botón. El cuadro de diálogo se guardará con el nombre de inicio de sesión.ui, que se usará más adelante en el script de Python. El Qobector el nombre se cambiará a Logindialog utilizando el Ventana del editor de propiedades de esta aplicación.

Usando el cuadro de diálogo Iniciar sesión

El archivo de interfaz de usuario creado por el Diseñador QT se puede usar en el script de Python de dos maneras. El archivo se puede usar directamente en el script de python, o el archivo python convertido del Diseñador QT El archivo se puede usar en el script de Python. Ambas formas de usar el cuadro de diálogo de Diseñador QT se muestran en la siguiente sección del tutorial.

Ejecute el archivo de diseñador QT directamente

El módulo UIC de la biblioteca PYQT se utiliza para cargar el archivo creado por el diseñador QT y el loadui () El método del módulo UIC se utiliza para cargar el archivo de interfaz de usuario. El siguiente script muestra cómo cargar el Diseñador QT Archivo nombrado Acceso.ui que creamos antes. Los módulos necesarios se importan al comienzo del script. El objeto de la aplicación se crea utilizando el Qapplication (), y el Diseñador QT el archivo se carga utilizando el loadui () método. A continuación, el exec () Se llama al método para iniciar el bucle de eventos de la aplicación.

# Módulo de importación SYS
Sys de importación
# Importar QTWidgets y módulos UIC
de Pyqt5 import qtwidgets, uic
# Crear objeto de aplicación
App = QtWidgets.QAPLICACIÓN (SYS.argv)
# Cargar formulario de GUI y visualización
Ventana = UIC.loadui ("Iniciar sesión.ui ")
ventana.espectáculo()
# Inicie el bucle de eventos de la aplicación o el cuadro de diálogo
aplicación.exec ()

El siguiente cuadro de diálogo aparecerá después de ejecutar el script anterior.

Ejecute el archivo UI convirtiéndose en el archivo Python

El archivo de interfaz de usuario creado por el diseñador QT se puede convertir en un archivo de Python utilizando el pyuic5 dominio. Ejecute el siguiente comando para convertir el Acceso.ui Archivo en el Inicla de inicio de sesión.py archivo. El Acceso.ui El archivo debe almacenarse en la ubicación actual para ejecutar el siguiente comando; de lo contrario, se generará un error.

$ pyuic5 inicio de sesión.UI -O Loginform.py

El siguiente código se generará en el Inicla de inicio de sesión.py Archivo después de ejecutar el comando anterior.

# -* -Codificación: UTF -8 -*-
# Implementación de formulario Generada a partir de la lectura del archivo UI 'Inicio de sesión.ui '
#
# Creado por: Pyqt5 UI Code Generator 5.12.3
#
# ADVERTENCIA! Se perderán todos los cambios realizados en este archivo!
de Pyqt5 import qtcore, qtgui, qtwidgets
clase ui_logindialog (objeto):
Def setupUi (self, logindialog):
Logindialog.setObjectName ("logindialog")
Logindialog.cambiar el tamaño (400, 224)
ser.textedit = qtwidgets.QTEXTEDIT (logindialog)
ser.textEdit.setGeometry (Qtcore.Qrect (130, 70, 221, 31))
ser.textEdit.setObjectName ("TextEdit")
ser.textedit_2 = qtwidgets.QTEXTEDIT (logindialog)
ser.TextEdit_2.setGeometry (Qtcore.Qrect (130, 120, 221, 31))
ser.TextEdit_2.setObjectName ("Textedit_2")
ser.etiqueta = qtwidgets.Qlabel (logindialog)
ser.etiqueta.setGeometry (Qtcore.Qrect (140, 20, 131, 31))
fuente = Qtgui.Qfont ()
fuente.setPointSize (18)
ser.etiqueta.setFont (fuente)
ser.etiqueta.setObjectName ("etiqueta")
ser.etiqueta_2 = qtwidgets.Qlabel (logindialog)
ser.etiqueta_2.setGeometry (Qtcore.Qrect (36, 70, 81, 20))
ser.etiqueta_2.setObjectName ("Label_2")
ser.etiqueta_3 = qtwidgets.Qlabel (logindialog)
ser.etiqueta_3.setGeometry (Qtcore.Qrect (40, 120, 67, 17))
ser.etiqueta_3.setObjectName ("Label_3")
ser.btnlogin = qtwidgets.QpushButton (logindialog)
ser.btnlogin.setGeometry (Qtcore.Qrect (150, 170, 89, 25))
ser.btnlogin.setObjectName ("btnlogin")
ser.btncancel = qtwidgets.QpushButton (logindialog)
ser.btncancel.setGeometry (Qtcore.Qrect (250, 170, 89, 25))
ser.btncancel.setObjectName ("btncancel")
ser.Retranslateui (logindialog)
Qtcore.QmetaObject.ConnectSlotsByName (logindialog)
Def RetRanslateui (self, logindialog):
_translate = qtcore.Consolidación.traducir
Logindialog.setwindowtitle (_translate ("logindialog", "diálogo"))
ser.etiqueta.setText (_translate ("logindialog", "formulario de inicio de sesión"))
ser.etiqueta_2.setText (_translate ("logindialog", "nombre de usuario"))
ser.etiqueta_3.setText (_translate ("logindialog", "contraseña"))
ser.btnlogin.setText (_translate ("logindialog", "login"))
ser.btncancel.setText (_translate ("logindialog", "cancelar"))

Lo siguiente mostrará el Acceso cuadro de diálogo importando el Inicla de inicio de sesión.py Archivo creado usando el pyuic5 dominio. El objeto de la aplicación se crea usando Qapplication (), y el cuadro de diálogo de inicio de sesión se carga utilizando el setUpui () método. El botón de inicio de sesión se adjunta con el LoginClicked () Método para verificar si el nombre de usuario y la contraseña tomados del usuario son válidos. El Cancelar El botón está conectado al cancelClicked () Método para dejar de fumar de la aplicación. El exec () Se llama al método para iniciar el bucle de eventos de la aplicación.

# Importar Qtwidgets
de Pyqt5 import qtwidgets
# SYS de importación
Sys de importación
# Importar el formulario de inicio de sesión UI
Importar la forma de inicio de sesión
# Defina una clase para configurar la interfaz de usuario
clase MyApp (QtWidgets.QMainWindow, Loginform.Ui_logindialog):
def __init __ (self, matriz = none):
super (myapp, yo).__init __ (padre)
# Cargue el formulario de inicio de sesión
ser.setupui (yo)
# Llame al método de inicio de sesión ()
ser.btnlogin.hecho clic.conectar (yo.Iniclo)
# Método de llamada CancelClicked ()
ser.btncancel.hecho clic.conectar (yo.cancelado)
# Declarar método para verificar el nombre de usuario y la contraseña cuando el botón de inicio de sesión haga clic en
Def loginClicked (yo):
Si uno mismo.textEdit.topLaInText () == 'Admin' y Self.TextEdit_2.topLaIntext () == 'Superuser':
imprimir ('usuario autenticado')
demás:
Imprimir ('Usuario no autenticado')
# Declarar método para finalizar el script cuando el botón Cancelar hará clic
Def cancelado (self):
salida()
# Crear objeto de aplicación
App = QtWidgets.QAPLICACIÓN (SYS.argv)
# Crear objeto de clase
form = myApp ()
# Muestra el formulario
forma.espectáculo()
# Inicie el bucle de eventos de la aplicación o el cuadro de diálogo
aplicación.exec ()

El siguiente cuadro de diálogo aparecerá después de ejecutar el script anterior.


Si el usuario ingresa el nombre de usuario o contraseña incorrecto en el Acceso formulario, luego aparecerá la siguiente salida después de hacer clic en el Acceso botón.


Si el usuario ingresa el nombre de usuario y la contraseña correctos en el Acceso formulario, luego aparecerá la siguiente salida después de hacer clic en el Acceso botón.


Si el usuario hace clic en el Cancelar botón en el Acceso formulario, entonces el cuadro de diálogo desaparecerá.

Conclusión

Este tutorial le mostró cómo instalar Diseñador QT y cómo diseñar una forma simple usando esta aplicación. El tutorial también le mostró cómo cargar el cuadro de diálogo UI directamente y después de convertirlo en el script de Python se ha mostrado en la otra parte de este tutorial. Con suerte, este artículo lo ayudó a comprender mejor el uso de QT Designer para construir y usar la GUI en aplicaciones.