bonjour;
j'ai dans mon projet plusieurs table-widget (objet de QTablewidget PyQt5). voici un apercu de l'affichage du contenu du tablewidget :
pour chacune de ces table-widget il ya une fonction qui lui correspond de la forme :
code pour tableWidget_1 :
tableWidget_1=QTablewidget()
def intialiser_tableWidget_1 (self):
self.tableWidget_1.clear() # effacer contenu
self.tableWidget_1.setHorizontalHeaderItem(0, QTableWidgetItem("date"))
self.tableWidget_1.setHorizontalHeaderItem(1, QTableWidgetItem("heure"))
self.tableWidget_1.setHorizontalHeaderItem(2, QTableWidgetItem("M1"))
self.tableWidget_1.setHorizontalHeaderItem(3, QTableWidgetItem("M2"))
code pour tableWidget_2 :
def intialiser_tableWidget_1 (self):
self.tableWidget_1.clear() # effacer contenu
self.tableWidget_1.setHorizontalHeaderItem(0, QTableWidgetItem("date"))
self.tableWidget_1.setHorizontalHeaderItem(1, QTableWidgetItem("heure"))
self.tableWidget_1.setHorizontalHeaderItem(2, QTableWidgetItem("M1"))
self.tableWidget_1.setHorizontalHeaderItem(3, QTableWidgetItem("M2"))
et ainsi de suite.
pour minimiser le nombre de lignes dans mon code, il est recommande que je cree une fonction avec argument, dans laquelle je vais passer ( tableWidget_1 pour argument ) pour tableWidget_1 , et ainsi de suite pour les autres tableWidget.
Pour cela, j'ai fait ceci mais cela ne marche pas :
tableWidget=QTablewidget()
def intialiser_tableWidget (self,tableWidget):
self.tableWidget.clear() # effacer contenu
self.tableWidget.setHorizontalHeaderItem(0, QTableWidgetItem("date"))
self.tableWidget.setHorizontalHeaderItem(1, QTableWidgetItem("heure"))
self.tableWidget.setHorizontalHeaderItem(2, QTableWidgetItem("M1"))
self.tableWidget.setHorizontalHeaderItem(3, QTableWidgetItem("M2"))
merci d'avance, pour toute proposition qui m'aidera a résoudre ce probleme
# Je suis pas trop python ...
Posté par AncalagonTotof . Évalué à 1. Dernière modification le 21 février 2020 à 08:30.
Mais …
Un mot sur la forme dans la question : apparemment, il y a des ``` à plusieurs endroits (pas tous). Mais c'est moche, pour un langage qui repose sur les indentations ! Il ne manquerait pas des lignes vides avant et après les blocs ?
Ensuite, je suis pas expert Python, loin de là, mais le dernier bloc ne devrait-il pas ressembler à ça plutôt ?
Ou alors, il faut ajouter un
self.tableWidget=tableWidget
au début de la méthode ? Bof …Pour terminer, vu qu'on est vendredi, je me permet : Python m'insupporte ! La quantité astronomique de
self
qu'il faut écrire dans les méthodes des classes, ça rend juste dingue ! Dommage, c'était pas mal. Tant pi …Ou alors ?… Nan ??? Ça n'a pas été fait exprès j'espère ?…
# POO
Posté par _kaos_ . Évalué à 1. Dernière modification le 21 février 2020 à 08:40.
Salut,
A vue de nez je dirais que c'est normal, et que si tu passes l'objet en paramètre il ne faut plus utiliser
self
.Edit : grillé :)
PS: aprés s'écrit après
Matricule 23415
# un peu comme les autres
Posté par NeoX . Évalué à 1. Dernière modification le 21 février 2020 à 09:38.
je ne suis pas développeur python, mais il suffit de changer ta logique
deviendrait alors
puis d'appeler plus loin
on peut aussi aller plus loin
en passant le nom des colonnes en paramètres, leur nombre.
mais ca je te laisse trouver :p
[^] # Re: un peu comme les autres
Posté par atlass218 . Évalué à 1. Dernière modification le 21 février 2020 à 12:01.
j'ai modifie la fonction comme ceci :
j'ai une autre fonction que j'ai oublié de mentionner
deux radiobutton un pour liste total des corrections, l'autre pour liste des corrections confirmées :
en faisant le choix de selection par les deux radiobuttons; je remarque que la commande sur le label (self.label_historique.setText) de la fonction (choix_liste) s'effectue, mais l'appel de la fonction (intialiser_tableWidget) en faisant integrer comme argument le nom des tablewiget ne s'effectue pas : ceci est remarque cat le contenu de la tablewidgte ne s'initialise pas comme c'est demande dans la fonction (intialiser_tableWidget)
je m'excuse une deuxième fois de n'avoir pas bien expliqué mon probleme tout au début
[^] # Re: un peu comme les autres
Posté par _kaos_ . Évalué à 1. Dernière modification le 21 février 2020 à 11:50.
Salut,
Es-tu bien sûr de comprendre à quoi réfère le mot-clef
self
?La fonction
choix_liste
est définie dans quelle classe qui hérite de quoi ?Enfin, regarde l'aide pour poster en markdown, en particulier du code (l'aide mémoire est juste en dessous de la zone de saisie). Avec tes messages, c'est difficile d'aider et un modérateur doit les éditer.
Matricule 23415
[^] # Re: un peu comme les autres
Posté par atlass218 . Évalué à 1. Dernière modification le 21 février 2020 à 13:49.
ceci est un code minimise
[^] # Re: un peu comme les autres
Posté par _kaos_ . Évalué à 1. Dernière modification le 21 février 2020 à 12:52.
Salut,
Ah, merci, on y voit plus clair (manque le python pour la coloration syntaxique, mais c'est vachement mieux :) ).
A tous les coups, la définition
parametre=QTableWidget()
ne sort pas du "scope" de la fonctionintialiser_tableWidget()
(je dis ça presque au pifomètre).Voir par exemple ici.
J'aurais tendance à te proposer une structure plus standard en POO :
Et là, ça devrait marcher mieux
Matricule 23415
[^] # Re: un peu comme les autres
Posté par _kaos_ . Évalué à 1.
Et pour ce genre de trucs, sinon, j'ai plutôt recours à des factory, mais dans un premier temps…
Matricule 23415
[^] # Re: un peu comme les autres
Posté par NeoX . Évalué à 2.
avec les bonnes balises autour du code, c'est mieux
```python
ton code collé ici
la suite ici
```
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.