[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