PyQt5 QSpinBox – Borrándolo según el usuario

En este artículo, veremos cómo podemos eliminar el cuadro de número cuando el usuario lo ordena, mientras diseñamos una aplicación, podría consumir mucho espacio/memoria si no se tiene cuidado al cerrar los widgets. Las clases basadas en QObject están diseñadas para vincularse (opcionalmente) en una jerarquía. Cuando se elimina un objeto de nivel superior, Qt también eliminará automáticamente todos sus objetos secundarios.

Para eliminar explícitamente la referencia del cuadro de número usamos el deletLatermétodo.

Sintaxis: spin_box.deleteLater()

Argumento: no requiere argumento

Acción realizada : Borra/elimina la referencia del spin box de la memoria.


Pasos de implementación:

1. Crear un cuadro de número
2. Crear una etiqueta para mostrar el estado del cuadro de número
3. Crear botón
4. Agregar acción al botón
5. Dentro de la acción, eliminar la referencia del cuadro de número y actualizar el texto de la etiqueta

A continuación se muestra la implementación.

# importing libraries
from PyQt5.QtWidgets import * 
from PyQt5 import QtCore, QtGui
from PyQt5.QtGui import * 
from PyQt5.QtCore import * 
import sys
  
class Window(QMainWindow):
  
    def __init__(self):
        super().__init__()
  
        # setting title
        self.setWindowTitle("Python ")
  
        # setting geometry
        self.setGeometry(100, 100, 600, 400)
  
        # calling method
        self.UiComponents()
  
        # showing all the widgets
        self.show()
  
    # method for widgets
    def UiComponents(self):
  
        # creating spin box
        self.spin = QSpinBox(self)
  
        # setting geometry to spin box
        self.spin.setGeometry(100, 100, 150, 40)
  
        # setting suffix to spin
        self.spin.setSuffix(" Spin Box")
  
        # creating label
        self.label = QLabel(self)
  
        # setting geometry
        self.label.setGeometry(100, 200, 300, 40)
  
        # setting text to the label
        self.label.setText("Spin box will delete when button get pressed")
  
        # creating a push button
        push = QPushButton("Press", self)
  
        # adding action to the push button
        push.pressed.connect(self.push_method)
  
    # method called by push button
    def push_method(self):
  
        # deleting the spin box
        self.spin.deleteLater()
  
        # showing this new name to label
        self.label.setText("Spin box is deleted")
  
# create pyqt5 app
App = QApplication(sys.argv)
  
# create the instance of our Window
window = Window()
  
# start the app
sys.exit(App.exec())

Producción :

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 *