PyQt5: cree un formulario de usuario para obtener información

En este artículo veremos cómo podemos crear un formulario de usuario en PyQt5. Un formulario de usuario es básicamente un cuadro de diálogo que hace que la entrada de datos del usuario sea más controlable y fácil de usar para el usuario. A veces, al crear una aplicación de interfaz de usuario grande, es necesario crear un formulario de usuario para obtener información esencial.

Pasos de implementación:

1. Cree una clase de ventana que herede QDialog
2. Agregue el título de la ventana y configure su geometría
3. Cree un objeto QGropBox
4. Cree una edición de línea para obtener el nombre, el cuadro giratorio para obtener la edad y el cuadro combinado para seleccionar el grado
5. Cree un método createForm que creará un formulario
6. Dentro del método de creación de formulario, cree un diseño de formulario y agregue filas
7. Cada fila debe tener una etiqueta y el nombre de ejemplo del método de entrada etiqueta y edición de línea para entrada, de manera similar etiqueta para grado y edad y cuadro combinado y cuadro de giro para la entrada.
8. Cree un QDialogButtonBox para el estado Aceptar y Cancelar
9. Agregue una acción al botón para aceptar y rechazar
10. Si presiona el botón Aceptar, simplemente imprima toda la información y si presiona el botón Cancelar, la ventana se cerrará

A continuación se muestra la implementación.

Python3

# importing libraries
from PyQt5.QtWidgets import * 
import sys
  
# creating a class
# that inherits the QDialog class
class Window(QDialog):
  
    # constructor
    def __init__(self):
        super(Window, self).__init__()
  
        # setting window title
        self.setWindowTitle("Python")
  
        # setting geometry to the window
        self.setGeometry(100, 100, 300, 400)
  
        # creating a group box
        self.formGroupBox = QGroupBox("Form 1")
  
        # creating spin box to select age
        self.ageSpinBar = QSpinBox()
  
        # creating combo box to select degree
        self.degreeComboBox = QComboBox()
  
        # adding items to the combo box
        self.degreeComboBox.addItems(["BTech", "MTech", "PhD"])
  
        # creating a line edit
        self.nameLineEdit = QLineEdit()
  
        # calling the method that create the form
        self.createForm()
  
        # creating a dialog button for ok and cancel
        self.buttonBox = QDialogButtonBox(QDialogButtonBox.Ok | QDialogButtonBox.Cancel)
  
        # adding action when form is accepted
        self.buttonBox.accepted.connect(self.getInfo)
  
        # adding action when form is rejected
        self.buttonBox.rejected.connect(self.reject)
  
        # creating a vertical layout
        mainLayout = QVBoxLayout()
  
        # adding form group box to the layout
        mainLayout.addWidget(self.formGroupBox)
  
        # adding button box to the layout
        mainLayout.addWidget(self.buttonBox)
  
        # setting lay out
        self.setLayout(mainLayout)
  
    # get info method called when form is accepted
    def getInfo(self):
  
        # printing the form information
        print("Person Name : {0}".format(self.nameLineEdit.text()))
        print("Degree : {0}".format(self.degreeComboBox.currentText()))
        print("Age : {0}".format(self.ageSpinBar.text()))
  
        # closing the window
        self.close()
  
    # creat form method
    def createForm(self):
  
        # creating a form layout
        layout = QFormLayout()
  
        # adding rows
        # for name and adding input text
        layout.addRow(QLabel("Name"), self.nameLineEdit)
  
        # for degree and adding combo box
        layout.addRow(QLabel("Degree"), self.degreeComboBox)
  
        # for age and adding spin box
        layout.addRow(QLabel("Age"), self.ageSpinBar)
  
        # setting layout
        self.formGroupBox.setLayout(layout)
  
  
# main method
if __name__ == '__main__':
  
    # create pyqt5 app
    app = QApplication(sys.argv)
  
    # create the instance of our Window
    window = Window()
  
    # showing the window
    window.show()
  
    # start the app
    sys.exit(app.exec())

Producción :

Person Name : Geek
Degree : BTech
Age : 20

Publicación traducida automáticamente

Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *