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