Foros Python

Versión completa: Duda con un QCheckBox dentro de una tabla en PyQt5
Actualmente estas viendo una versión simplificada de nuestro contenido. Ver la versión completa con el formato correcto.
Hola a todos,


Llevo ya muchas horas con esto y no lo consigo. Os pregunto a vosotros:

Estoy haciendo para el proyecto de DAM que por fin termino, un gestor de hábitos. Os paso una captura.
[Imagen: Captura-de-Pantalla-2021-01-31-a-la-s-11-17-53.png]

Necesito poner donde estan los 0 un QCheckBox para poder marcar el hábito como realizado o no. 

Pues no soy capaz, la verdad. ¿Cómo lo tengo que hacer?


Los datos estan volcados de una bbdd en SQLITE que integra el PyQt5


Este es el código que general la tabla.

       
Código:
while query.next():
            estado_diario = query.value(2) # en número indica la posición del campo en la tabla
            tipo = query.value(5)
            importancia = query.value(4)
            nombre = query.value(3)
            # Ahora organizamos los datos en la tabla creada anteriormente
            self.tabla.setRowCount(index + 1)
            self.tabla.setItem(index, 0, QTableWidgetItem(str(estado_diario)))
            self.tabla.setItem(index, 1, QTableWidgetItem(importancia))
            self.tabla.setItem(index, 2, QTableWidgetItem(tipo))
            self.tabla.setItem(index, 3, QTableWidgetItem(nombre))
Hola, bienvenido.

La clase QTableWidgetItem tiene soporte para un checkbox vía la función setCheckState().

Podrías probar algo así:

  1. from PyQt5.QtCore import Qt
  2.  
  3. # ...
  4.  
  5. item = QTableWidgetItem()
  6. item.setCheckState(Qt.Unchecked)
  7. self.table.setItem(index, 0, item)


Saludos!
(01-02-2021, 12:50 AM)Francisco escribió: [ -> ]Hola, bienvenido.

La clase QTableWidgetItem tiene soporte para un checkbox vía la función setCheckState().

Podrías probar algo así:

  1. from PyQt5.QtCore import Qt
  2.  
  3. # ...
  4.  
  5. item = QTableWidgetItem()
  6. item.setCheckState(Qt.Unchecked)
  7. self.table.setItem(index, 0, item)


Saludos!


Perdona, que no te di las gracias.

Saludos,