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 deletLater
mé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