Pitón

Cómo utilizar PyQt GUI Builder

Cómo utilizar PyQt GUI Builder

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

Prerrequisitos

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 de 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. La 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. La 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 con Qt Designer

Para comenzar a diseñar la interfaz para la aplicación Python, haremos clic en el Crear 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 Widgets de etiqueta, edición de texto y pulsador. El cuadro de diálogo se guardará con el nombre Iniciar sesión.ui, que se utilizará más adelante en el script de Python. La QObject el nombre se cambiará a Logindialog utilizando la Ventana del editor de propiedades de esta aplicación.

Uso del cuadro de diálogo de inicio de sesión

El archivo de interfaz de usuario creado por el Diseñador Qt se puede utilizar en el script de Python de dos formas. El archivo se puede utilizar directamente en la secuencia de comandos de Python o en el archivo de Python convertido de la Diseñador Qt El archivo se puede utilizar en la secuencia de comandos de Python. Ambas formas de utilizar el cuadro de diálogo de Diseñador Qt se muestran en la siguiente sección del tutorial.

Ejecute el archivo Qt Designer directamente

El módulo UIC de la biblioteca PyQt se utiliza para cargar el archivo creado por Qt Designer, y el loadUI () El método del módulo UIC se utiliza para cargar el archivo UI. El siguiente script muestra cómo cargar el Diseñador Qt archivo llamado 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 usando el loadUI () método. A continuación, el ejecutivo () Se llama al método para iniciar el bucle de eventos de la aplicación.

# Importar módulo sys
importar sys
# Importar QtWidgets y módulos uic
desde PyQt5 importar QtWidgets, uic
# Crear objeto de aplicación
aplicación = QtWidgets.QApplication (sys.argv)
# Cargar formulario GUI y mostrar
ventana = uic.loadUi ("Iniciar sesión.ui ")
ventana.show()
# Inicie el bucle de eventos de la aplicación o cuadro de diálogo
aplicación.ejecutivo ()

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

Ejecute el archivo de interfaz de usuario convirtiéndolo en archivo de Python

El archivo de IU creado por Qt Designer se puede convertir en un archivo de Python usando el pyuic5 mando. Ejecute el siguiente comando para convertir el Acceso.ui archivar en el loginForm.py expediente. La Acceso.ui El archivo debe almacenarse en la ubicación actual para ejecutar el siguiente comando; de lo contrario, se generará un error.

$ pyuic5 Iniciar sesión.ui -o loginForm.py

El siguiente código se generará en el loginForm.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 de interfaz de usuario 'Iniciar sesión.ui '
#
# Creado por: PyQt5 UI code generator 5.12.3
#
# ADVERTENCIA! Todos los cambios realizados en este archivo se perderán!
desde PyQt5 importar QtCore, QtGui, QtWidgets
clase Ui_Logindialog (objeto):
def setupUi (self, Logindialog):
Logindialog.setObjectName ("Logindialog")
Logindialog.cambiar tamaño (400, 224)
uno mismo.textEdit = QtWidgets.QTextEdit (Logindialog)
uno mismo.textEdit.setGeometry (QtCore.QRect (130, 70, 221, 31))
uno mismo.textEdit.setObjectName ("textEdit")
uno mismo.textEdit_2 = QtWidgets.QTextEdit (Logindialog)
uno mismo.textEdit_2.setGeometry (QtCore.QRect (130, 120, 221, 31))
uno mismo.textEdit_2.setObjectName ("textEdit_2")
uno mismo.etiqueta = QtWidgets.QLabel (Logindialog)
uno mismo.etiqueta.setGeometry (QtCore.QRect (140, 20, 131, 31))
fuente = QtGui.QFont ()
fuente.setPointSize (18)
uno mismo.etiqueta.setFont (fuente)
uno mismo.etiqueta.setObjectName ("etiqueta")
uno mismo.label_2 = QtWidgets.QLabel (Logindialog)
uno mismo.label_2.setGeometry (QtCore.QRect (36, 70, 81, 20))
uno mismo.label_2.setObjectName ("etiqueta_2")
uno mismo.label_3 = QtWidgets.QLabel (Logindialog)
uno mismo.label_3.setGeometry (QtCore.QRect (40, 120, 67, 17))
uno mismo.label_3.setObjectName ("etiqueta_3")
uno mismo.btnLogin = QtWidgets.QPushButton (Logindialog)
uno mismo.btnLogin.setGeometry (QtCore.QRect (150, 170, 89, 25))
uno mismo.btnLogin.setObjectName ("btnLogin")
uno mismo.btnCancel = QtWidgets.QPushButton (Logindialog)
uno mismo.btnCancel.setGeometry (QtCore.QRect (250, 170, 89, 25))
uno mismo.btnCancel.setObjectName ("btnCancel")
uno mismo.retranslateUi (Logindialog)
QtCore.QMetaObject.connectSlotsByName (Logindialog)
def retranslateUi (self, Logindialog):
_translate = QtCore.QCoreApplication.traducir
Logindialog.setWindowTitle (_translate ("Logindialog", "Diálogo"))
uno mismo.etiqueta.setText (_translate ("Logindialog", "Formulario de inicio de sesión"))
uno mismo.label_2.setText (_translate ("Logindialog", "Nombre de usuario"))
uno mismo.label_3.setText (_translate ("Logindialog", "Contraseña"))
uno mismo.btnLogin.setText (_translate ("Logindialog", "Iniciar sesión"))
uno mismo.btnCancel.setText (_translate ("Logindialog", "Cancelar"))

Lo siguiente mostrará el Acceso cuadro de diálogo importando el loginForm.py archivo creado con el pyuic5 mando. El objeto de la aplicación se crea utilizando QApplication (), y el cuadro de diálogo de inicio de sesión se carga con el setupUi () método. El botón Iniciar 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. La Cancelar El botón está adjunto al cancelClicked () método para salir de la aplicación. La ejecutivo () Se llama al método para iniciar el bucle de eventos de la aplicación.

# Importar QtWidgets
desde PyQt5 importar QtWidgets
# Importar sistema
importar sys
# Importar formulario de inicio de sesión ui
importar loginForm
# Definir una clase para configurar la interfaz de usuario
clase MyApp (QtWidgets.QMainWindow, loginForm.Ui_Logindialog):
def __init __ (self, parent = None):
super (MyApp, yo).__init __ (padre)
# Cargue el formulario de inicio de sesión
uno mismo.setupUi (auto)
# Llamar al método loginClicked ()
uno mismo.btnLogin.clickeado.conectar (uno mismo.loginClicked)
# Llamar al método cancelClicked ()
uno mismo.btnCancel.clickeado.conectar (uno mismo.cancelClicked)
# Declare el método para verificar el nombre de usuario y la contraseña cuando haga clic en el botón Iniciar sesión
def loginClicked (self):
si yo mismo.textEdit.toPlainText () == 'admin' y uno mismo.textEdit_2.toPlainText () == 'superusuario':
print ('Usuario autenticado')
demás:
print ('Usuario no autenticado')
# Declare el método para terminar el script cuando el botón Cancelar haga clic
def cancelClicked (self):
Salida()
# Crear objeto de aplicación
aplicación = QtWidgets.QApplication (sys.argv)
# Crear objeto de clase
formulario = MyApp ()
# Mostrar el formulario
formulario.show()
# Inicie el bucle de eventos de la aplicación o cuadro de diálogo
aplicación.ejecutivo ()

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


Si el usuario ingresa un nombre de usuario o contraseña incorrectos en el Acceso formulario, la siguiente salida aparecerá 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, la siguiente salida aparecerá 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 un formulario simple usando esta aplicación. El tutorial también le mostró cómo cargar el cuadro de diálogo de la interfaz de usuario directamente y después de convertirlo en el script de Python se muestra en la otra parte de este tutorial. Con suerte, este artículo lo ayudó a comprender mejor el uso de Qt Designer para crear y usar la GUI en aplicaciones.

El cursor salta o se mueve aleatoriamente mientras escribe en Windows 10
Si descubre que el cursor del mouse salta o se mueve por sí solo, automáticamente, de manera aleatoria mientras escribe en una computadora portátil o ...
Cómo invertir la dirección de desplazamiento del mouse y los paneles táctiles en Windows 10
Ratón y Panel táctils no solo facilitan la informática, sino que también hacen que sea más eficiente y requieran menos tiempo. No podemos imaginar una...
Cómo cambiar el tamaño, el color y el esquema del puntero del mouse y del cursor en Windows 10
El puntero y el cursor del mouse en Windows 10 son aspectos muy importantes del sistema operativo. Esto también se puede decir de otros sistemas opera...