[pyar] Borrar las filas de un TableWidgets

Ismael Bejarano ismaelbej en gmail.com
Lun Sep 11 16:57:24 ART 2017


Hola!

2017-09-11 15:30 GMT-03:00 Roberto Matarrita <rmatarria en gmail.com>:
> Maria vieras que no me funcionó. Lo que hace es dejar las filas en blanco y
> mete de nuevo las filas modificadas y cada ves que hago el proceso me va
> dejando filas en blanco al final del tablewidgets.
>
> Pero tengo una buena noticia, experimentando lo logré hacer de la siguiente
> forma.
>
> def LimpiarTable(self):
>       #Proceso para limpiar el TableWidgets
>       #self.tableWidget.clearContents()
>
>       w = 0
>       j=self.tableWidget.rowCount()
>       while w < j:
>          self.tableWidget.removeRow(self.tableWidget.rowCount()-1)
>          w = w + 1

Probaste usando setRowCount http://doc.qt.io/qt-5/qtablewidget.html#setRowCount

def LimpiarTable(self):
    self.tableWidget.setRowCount(0)

>
> Espero les sirva.
>
> Roberto
> Costa Rica.
>
> El 11 de septiembre de 2017, 5:12, Marian <mavignau en gmail.com> escribió:
>>
>> Probaste con
>> self.tableWidget.clearContents()
>>
>> reemplazando el
>>
>>  #Proceso para borrar las filas
>>       while w < j:
>>           self.tableWidget.removeRow(w)
>>           w = w + 1
>>
>> http://doc.qt.io/qt-5/qtablewidget.html#clearContents
>>
>> El 10 de septiembre de 2017, 3:53, Roberto Matarrita <rmatarria en gmail.com>
>> escribió:
>>>
>>> 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
>>>
>>>  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))
>>>
>>>

Saludos!

Ismael


Más información sobre la lista de distribución pyar