Cómo eliminar una tabla del diseño en PyQt
Estoy tratando de encontrar una forma de cambiar entre tablas que se cargan desde SQL. Quiero eliminar completamente una tabla de la página antes de cargar la siguiente.
¡Gracias!
class DisplayLog(QWidget):
def __init__(self, parent=None):
super(DisplayLog, self).__init__(parent)
self.layout = QGridLayout()
self.inTbl = QTableView()
self.outTbl = QTableView()
# push button 2
IncomingButton = UIFunctions._AddButton("Mostrar Entrantes")
OutgoingButton = UIFunctions._AddButton("Mostrar Salientes")
PaintButton = UIFunctions._AddButton("Mostrar Pintura")
IncomingButton.clicked.connect(self.incoming_display) # Llamar función al hacer clic
OutgoingButton.clicked.connect(self.outgoing_display) # Llamar función al hacer clic
self.layout.addWidget(IncomingButton, 0, 0)
self.layout.addWidget(OutgoingButton, 0, 1)
self.layout.addWidget(PaintButton, 0, 2)
self.setLayout(self.layout)
def incoming_display(self):
if createConnection():
sql = 'SELECT * FROM IncomingCoilTable'
self.inTbl = displayData(sql)
self.layout.addWidget(self.inTbl, 1, 1)
def outgoing_display(self):
self.layout.removeWidget(self.inTbl)
“`
davy.ai
Para eliminar por completo una tabla de la página antes de cargar la siguiente, puedes usar la función
removeWidget()
para eliminar la tabla del diseño, y luego asignar la variable que contiene la tabla aNone
para liberar sus recursos. Aquí tienes una funciónoutgoing_display()
actualizada que elimina la tablainTbl
antes de cargar la tablaoutTbl
:Ten en cuenta que establecemos
self.inTbl
aNone
para liberar sus recursos y que pueda ser eliminado por completo de la memoria. Puedes hacer lo mismo conself.outTbl
si es necesario.