Bonjour,
Débutant voir même, extrêmement novice avec Python, je viens de réussir à créer et alimenter via une BDD une QTableWidget.
Certes, mon code est certainement loin d’être parfait mais pour le moment, il fonctionne plus ou moins.
Pour des raisons d’esthétisme, j’utilise une feuille de style CSS qui, ajoute une image lors de la coche des QCheckBox.
Si je vous parle de ça ! C’est tout simplement parce que j’ajoute à la QTableWidget, l’objet QCheckBox avec un appel de fonction lors du clique sur celle-ci.
L’appel de la fonction lors du clique fonctionne correctement, cependant, pour les besoins de mon utilisation, je n’arrive pas à récupérer le n° de la ligne où est située la QCheckBox qui vient d’être cochée.
Je vous note ci-dessous le code pour que cela soit le plus compréhensible pour vous.
# boucle de lecture de la requête
try:
while self.query.next():
# widget checkbox
checkbox_widget = QWidget()
checkbox_widget.setStyleSheet('background-color: transparent;')
layout_cb = QtWidgets.QHBoxLayout(checkbox_widget)
self.table_ep_cb = QtWidgets.QCheckBox()
layout_cb.addWidget(self.table_ep_cb)
layout_cb.setAlignment(Qt.AlignmentFlag.AlignCenter)
layout_cb.setContentsMargins(0, 0, 0, 0)
checkbox_widget.setLayout(layout_cb)
tablerow = self.table_ep.rowCount()
self.table_ep.insertRow(tablerow)
self.table_ep.setItem(tablerow, 0, QtWidgets.QTableWidgetItem((self.query.value('col1'))))
self.table_ep.setItem(tablerow, 1, QtWidgets.QTableWidgetItem((self.query.value('col2'))))
self.table_ep.setItem(tablerow, 2, QtWidgets.QTableWidgetItem((self.query.value('col3'))))
self.table_ep.setItem(tablerow, 3, QtWidgets.QTableWidgetItem((str(self.query.value('col4')))))
self.table_ep.setItem(tablerow, 4, QtWidgets.QTableWidgetItem((str(self.query.value('col5')))))
self.table_ep.setItem(tablerow, 5, QtWidgets.QTableWidgetItem((str(self.query.value('col6')))))
self.table_ep.setItem(tablerow, 6, QtWidgets.QTableWidgetItem((self.query.value('col7'))))
self.table_ep.setItem(tablerow, 7, QtWidgets.QTableWidgetItem((str(self.query.value('col8')))))
self.table_ep.setItem(tablerow, 8, QtWidgets.QTableWidgetItem((str(self.query.value('col9')))))
self.table_ep.setCellWidget(tablerow, 9, checkbox_widget)
self.table_ep.resizeRowsToContents()
self.table_ep_cb.stateChanged.connect(self._itemClicked)
except self.query.lastError() as error:
print("Erreur de chargement de la requête SQL", error)
self.query.finish()
La fonction (simple pour le moment):
row = self.table_ep.currentRow()
print(row)
Vous remerciant à tous d’avance pour votre aide.
3 messages - 3 participant(e)s