Hola Juan,

Muchas gracias, si es cierto, es una muy buena idea.

Y a kikocorreoso muchas gracias también.





Saludos,

--
Javier Pérez
http://es.linkedin.com/in/javierperez1
http://www.perasalvino.es/




> El 1 feb 2021, a las 13:29, Juan José Gómez Romera <jjgom...@gmail.com> 
> escribió:
> 
> Hola,
> 
> yo tiraba de un itemDelegate para editar cuallquiera de los datos de esa 
> columna, y de hecho siendo datos de una base de datos lo apropiado es aplicar 
> un modelo/vista para dejar que qt se ocupe de mostrar los datos, 
> https://doc.qt.io/qtforpython/overviews/model-view-programming.html 
> <https://doc.qt.io/qtforpython/overviews/model-view-programming.html>
> 
> 
> El lun, 1 feb 2021 a las 12:26, kikocorreoso vía Python-es 
> (<python-es@python.org <mailto:python-es@python.org>>) escribió:
> 
> 
> 
> Sent with ProtonMail <https://protonmail.com/> Secure Email.
> 
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Friday, 29 de January de 2021 21:50, Javier Perez 
> <javierpe...@perasalvino.es <mailto: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))
>> 
>> 
>> 
>> <Captura de Pantalla 2021-01-29 a la(s) 21.45.13.png>
> 
> He cogido el ejemplo de aquí: https://pythonspot.com/pyqt5-table/ 
> <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 <http://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://es.linkedin.com/in/javierperez1>
>> http://www.perasalvino.es/ <http://www.perasalvino.es/>
>> 
>> 
> 
> _______________________________________________
> Python-es mailing list
> Python-es@python.org <mailto:Python-es@python.org>
> https://mail.python.org/mailman/listinfo/python-es 
> <https://mail.python.org/mailman/listinfo/python-es>
> <ejemplo.py>_______________________________________________
> Python-es mailing list
> Python-es@python.org
> https://mail.python.org/mailman/listinfo/python-es

_______________________________________________
Python-es mailing list
Python-es@python.org
https://mail.python.org/mailman/listinfo/python-es

Responder a