Fonctionnement du menu barre en python

Résolu

Bonjour,

J'ai Trois fichiers :

main.py ( fenêtre principale désignée root1, avec Barre de menu)

Donnees.py (sous fenêtre en principe bien personnalisée, désignée root)

db.py (création de table et liaison avec DB sqlite3 avec les fonctions d'ajout, ..etc.)

je cherche a faire afficher la sous fenêtre Donnees.py, une fois je clique sur la commande en Barre de menu

je vous remis ci dessous mes lignes de codes, pour que vous puissiez corriger mes erreurs. et merci d'avance

#Importation des bibliotheques
from tkinter import *
from tkinter import ttk
import tkinter as tk
import Donnees

#Appeler les fenetres
def afficher_donnees(Donnees):
    Donnees = Toplevel()



#Creation de la fenetre principale
root1=Tk()
root1.title("Centre de soutien Ibn Al Haytam")
root1.geometry('1300x650+0+0')
root1.resizable(False,False)
root1.configure(bg="#E1A624")



#Creation de la barre de menu
menu_barre = Menu(root1)
menu_fichiers = Menu(menu_barre,tearoff=0)
menu_operations = Menu(menu_barre,tearoff=0)
menu_editions = Menu(menu_barre,tearoff=0)

menu_barre.add_cascade(label="Fichiers",menu=menu_fichiers)
menu_fichiers.add_command(label="Ouvrir")
menu_fichiers.add_command(label="Annees")
menu_fichiers.add_command(label="Quitter",command=quit)
menu_barre.add_cascade(label="Operations",menu=menu_operations)
menu_operations.add_command(label="Donnees personnelles",command=afficher_donnees)
menu_operations.add_command(label="Inscriptions")
menu_barre.add_cascade(label="Editions",menu=menu_editions)


#Configuration de la barre de menu
root1.config(menu=menu_barre)

#Chargement de la fenetre principale
root1.mainloop()


Windows / Chrome 133.0.0.0

5 réponses

  1. Salut,

    Il faudrait connaitre le contenu de Donnees.

    De plus, ton import Donnees est écrasé par Toplevel() dans ta fonction :

    def afficher_donnees():
        Donnees = Toplevel()
    1
    1. Contributeur

      bonjour,

      quelle erreur rencontres-tu?

      0
      1. Bonjour

        l'erreur est comme suite :

        [Running] python -u "c:\Users\hp\Desktop\Centre\main.py"

        Exception in Tkinter callback

        Traceback (most recent call last):

          File "C:\Users\hp\AppData\Local\Programs\Python\Python313\Lib\tkinter\__init__.py", line 2068, in __call__

            return self.func(*args)

                   ~~~~~~~~~^^^^^^^

        TypeError: afficher_donnees() missing 1 required positional argument: 'Donnees'

        [Done] exited with code=0 in 20.711 seconds

        0
        1. Contributeur

          remplace la ligne 8 par:

          def afficher_donnees():
          0
      2. le problème est toujours la

        0
        1. Contributeur

          peux-tu partager ton code modifié, et le nouveau message d'erreur?

          0
      3. Bonsoir,

        j'ai trouve ma faute, c'est que mes codes dans Donnees.py etaient hors la fonction (def)

        Merci pour votre attention

        0