Bonjour,
Cette discussion fait suite à la discution 'Créé une classe de boutons de menu avec la class ttk.Button' mais aborbe un autre point.
Pour faciliter la gestion du projet, je souhaite que le code de chaque page appelée par chaque bouton de la classe Option soit sur un ficher séparé.
Quand on clique sur un bouton, il transmet son paramètre index à la fonction Page.show_page qui doit inclure le code le la page concernée nomméé page+index.
Pour ce faire, j'importe le module importlib qui permet de convertir la variable nom de la page ('page'+str(index) de type string en variable module de type fichier.
PROBLEME: Dans chaque page, je fait référence à des informations déjà existantes dans le fichier main.py du type: ttk.Button et main_frame.
Le print(index) et le message 'Page index' des pages 0 et 1 montre que cela fonctionne. Mais j'obtiens les erreurs (NameError: name 'ttk' is not defined) et (name 'main_frame' is not defined) pour afficher un boutton, alors que dans main.py j'ai fait (from tkinter import ttk) et défini (option_frame = tk.Frame(root, bg=FRMO_COLOR)).
Et si je les définis dans chaque page, il me demande de définir zoot qui est la fenêtre définie dans main.py. On ne s'en sort pas!
C'est comme si chaque page devait être validée en soi avant de fonctionner, ce qui ne fait plus l'affaire.
Or ce qui m'intéresse c'est uniquement d'insérer à cet endroit le code correspondant à la page à la façon de l'instruction #include que j'utilisais en asp.
Faut t-il utiliser un format précis pour les fichiers pageindex autre que .py ( j'ai bien essayé sans extention ou .txt mais sans succès?
Faut t-il avoir recours à une autre instruction que import?
Autres solutions...?
(J'utilise PyCharm 2024.1.4.)
MERCI POUR VOTRE AIDE
Partager