Sent with [ProtonMail](https://protonmail.com) Secure Email.

‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
On Friday, 29 de January de 2021 21:50, Javier Perez 
<javierpe...@perasalvino.es> wrote:

> 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.
>
> 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.
>
> 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))

He cogido el ejemplo de aquí: https://pythonspot.com/pyqt5-table/
Y lo he modificado un poco para meter un QCheckBox (mira la línea entre 
almohadillas).
No me queda claro si es eso lo que necesitas.

import sys

from PyQt5.QtWidgets import QMainWindow, QApplication, QWidget, QAction, 
QTableWidget,QTableWidgetItem,QVBoxLayout, QCheckBox

from PyQt5.QtGui import QIcon

from PyQt5.QtCore import pyqtSlot

class App(QWidget):

def __init__(self):

super().__init__()

self.title = 'PyQt5 table - pythonspot.com'

self.left = 0

self.top = 0

self.width = 300

self.height = 200

self.initUI()

def initUI(self):

self.setWindowTitle(self.title)

self.setGeometry(self.left, self.top, self.width, self.height)

self.createTable()

# Add box layout, add table to box layout and add box layout to widget

self.layout = QVBoxLayout()

self.layout.addWidget(self.tableWidget)

self.setLayout(self.layout)

# Show widget

self.show()

def createTable(self):

# Create table

self.tableWidget = QTableWidget()

self.tableWidget.setRowCount(4)

self.tableWidget.setColumnCount(2)

###############################################################################################

self.tableWidget.setCellWidget(0,0, QCheckBox())

###############################################################################################

self.tableWidget.setItem(0,1, QTableWidgetItem("Cell (1,2)"))

self.tableWidget.setItem(1,0, QTableWidgetItem("Cell (2,1)"))

self.tableWidget.setItem(1,1, QTableWidgetItem("Cell (2,2)"))

self.tableWidget.setItem(2,0, QTableWidgetItem("Cell (3,1)"))

self.tableWidget.setItem(2,1, QTableWidgetItem("Cell (3,2)"))

self.tableWidget.setItem(3,0, QTableWidgetItem("Cell (4,1)"))

self.tableWidget.setItem(3,1, QTableWidgetItem("Cell (4,2)"))

self.tableWidget.move(0,0)

# table selection change

self.tableWidget.doubleClicked.connect(self.on_click)

@pyqtSlot()

def on_click(self):

print("\n")

for currentQTableWidgetItem in self.tableWidget.selectedItems():

print(currentQTableWidgetItem.row(), currentQTableWidgetItem.column(), 
currentQTableWidgetItem.text())

if __name__ == '__main__':

app = QApplication(sys.argv)

ex = App()

sys.exit(app.exec_())

> Saludos,
>
> --
> Javier Pérez
> http://es.linkedin.com/in/javierperez1
> http://www.perasalvino.es/
_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a