Bonjour,
je suis en train de structurer un peu mes programmes afin de faciliter les relectures et les modifications à venir.
j'aimerais faire du main (le fichier à partir duquel le programme se lance) un fichier très simple (taille<20 lignes) énumérant simplement chacune des étapes nécessaire au bon déroulement du programme.
j'ai réussi jusqu'à maintenant à tout affecter dans différents fichiers.
il me reste un point bloquant sur lequel je ne sais pas vraiment quelle approche aborder...
cela concerne la gestion des évènements widget.cliqued.connect(méthode)
en gros actuellement cela ressemble dans mes programmes à cela:
la solution ci dessus fonctionne mais je trouve plutôt "moche" de faire appel à une méthode du main qui elle même fait appel à une méthode développée ailleurs.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 class Fenetre_Principale(QMainWindow): def __init__(self): QMainWindow.__init__(self) self.bouton_charger.clicked.connect(self.fonction_charger_main) def fonction_charger_main(self): fonction_charger(self)
C'est actuellement la seule manière que j'ai trouvé pour pouvoir faire appel à un ensemble de widgets/variables déclarés précédemment.
le fait de mettre directement "fonction_charger(self)" dans le connect induit une exécution de la méthode dès l'ouverture de ma fenêtre.
si j'enlève le self... la liaison avec la méthode est ok pour une méthode ne nécessitant aucun argument... sauf que j'ai besoin de la faire passer ce QMainWindow pour pouvoir avoir accès à tout ce qu'il peut contenir.
Donc en gros, je n'arrive pas à lier le connect directement à une méthode hors main tout en métant le "self" relatif au QMainWindow en paramètre...
là je suis en train de voir si faire appel à une classe contenant mes méthodes peut me solutionner cette difficulté mais pour l'instant sans succès...
si vous avez des conseils je suis preneur :-)
merci!
Partager