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