Python - PROBLEMA AL BORRAR FILAS DE UN TABLEWIDGETS

 
Vista:
sin imagen de perfil
Val: 246
Ha disminuido 1 puesto en Python (en relación al último mes)
Gráfica de Python

PROBLEMA AL BORRAR FILAS DE UN TABLEWIDGETS

Publicado por Roberto Matarrita (106 intervenciones) el 10/09/2017 08:47:29
Buenas noches.
Hace días hice un mantenimiento de una tabla, donde se insertan , modifica y borran datos.
La idea es que cada vez que se aplica alguno de los conceptos anteriores el TableWidgets, se actualice, mostrando los cambios que se le hace a un registro, ya sea que se modifique, incluya o excluya el registro.

Tengo una forma que hace todo esto y abajo en la misma forma hay un tablewidgets, que muestra los datos de la tabla. Cuando hago un insert, o bien borro o modifico los datos ese table debe actualizarse. El problema que tengo es que al borrar las filas del table widgets, no se me borran todas y cuando se me refresca el tablewidget, se muestras los datos nuevos mas las filas que no se borraron.

He hecho muchos cambios pero siempre es lo mismo y desconozco el porque no se borran todos los datos. Aquí pongo parte del código.

Roberto
Costa Rica.l

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
def Consultar2(self):
 
      cadenaconexcion= "host='localhost' dbname='municipal' user='postgres' password='Administra8080'"
      obj            = psycopg2.connect(cadenaconexcion)
      objCursor=obj.cursor()
 
      estado = self.db.open()
      if estado == False:
           QMessageBox.warning(self, "Error", self.db.lastError().text(), QMessageBox.Discard)
      #Definicion de las columnas
      self.tableWidget.setColumnCount(4)
      self.tableWidget.setHorizontalHeaderLabels(['Id', 'Nombre ', 'Edad', 'Salario'])
      self.tableWidget.setColumnWidth(0,30)
      self.tableWidget.setColumnWidth(1,200)
      self.tableWidget.setColumnWidth(2,40)
 
      row=0
      objCursor=obj.cursor()
      objCursor.execute("SELECT identificacion,nombre,edad,salario FROM usuarios order by identificacion asc")
      w = 0
      j=self.tableWidget.rowCount()
 
     #Proceso para borrar las filas
      while w < j:
          self.tableWidget.removeRow(w)
          w = w + 1
 
#Proceso para cargas el tablewidgets
      for i in objCursor:
          self.tableWidget.insertRow(row)
          self.identificacion = str(i[0])
          self.nombre = str(i[1])
          self.edad = str(i[2])
          self.salario = str(i[3])
 
          self.tableWidget.setItem(row, 0, QTableWidgetItem(self.identificacion))
          self.tableWidget.setItem(row, 1, QTableWidgetItem(self.nombre))
          self.tableWidget.setItem(row, 2, QTableWidgetItem(self.edad))
          self.tableWidget.setItem(row, 3, QTableWidgetItem(self.salario))


Roberto
Costa Rica..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder