IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Tkinter Python Discussion :

thinter affichage menu [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 11
    Points
    11
    Par défaut thinter affichage menu
    Bonjour,
    je suis novice en programmation python je pense que mes erreurs sont tellement basique
    que les recherches faites sur le net non pas abouties,je n'ai pas trouvé de cas similaire
    ou je n'ai pas posé les bonnes questions.
    Donc voila,je lance l'application ensuite menu Edit et puis Lister .
    j'ai une fenêtre avec ma liste afficher.
    1: problème ,si je clique sur le bouton Ferme la liste ça ne fonctionne pas
    de plus si je refait Edit et puis Lister j’obtiens une nouvelle fenêtre ainsi de suite.

    2:problème,au lieu d'utiliser la commande Quit j'ai pris pack_forget().
    toujours Menu ensuite Masquer et la effectivement la liste afficher disparaît
    mais je suis incapable de la relancer sans être obliger de fermer et relancer l'application.
    voici le code, merci à tous pour votre aide
    Leonardo




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    #essai de creation menu tres simple
     
     
    import tkinter as tk
    from tkinter import *
    from tkinter import Label
    from tkinter import Frame
     
    def save():
    	''' à compléter '''
    	pass
     
    def quitter():
            frame1.quit
            listbox = Frame(text, borderwidth=5, relief=GROOVE)
            listbox.pack(fill="both", expand="yes")
            Label(listbox, text="ne ferme pas la Frame liste").pack()
     
            print("ne ferme pas la liste")
     
    def Masquer():# masquer la listbox frame1/2
            frame1.pack_forget()
            listbox = Frame(text, borderwidth=5, relief=GROOVE)
            listbox.pack(fill="both", expand="yes")
            Label(listbox, text="masque la fenetre liste").pack()
            Label(listbox, text="relister command impossible").pack()
     
     
    def listage():       #creation boite listbox
     
     
           #donner un aspect a la frame
        listbox = Frame(frame1, borderwidth=5, relief=GROOVE)
           #donner un Nom au cadre d'une frame
        listbox = LabelFrame(frame1, text="Titre de la frame listing", padx=20, pady=20)
        listbox.pack(fill="both", expand="yes")
           #donner un Nom a l'interieur d'une frame
        Label(listbox, text="A l'intérieure de la frame").pack()
     
            # bouton de sortie
        bouton=Button(frame1, text="Fermer la liste", command=quitter)
        bouton.pack()
           #definition de la barre de defilement de cette boite
        scrollbar = Scrollbar(listbox)
        scrollbar.pack( side = RIGHT, fill=Y )
        malist = Listbox(listbox, yscrollcommand = scrollbar.set )
            #ecriture de item dans malist et ensuite dans la boite
        for item in ["un", "deux", "trois","quatre", "cinq","six", "sept", "huit", "neuf","dix", "A", "B", "C","D", "E", "F", "G","H","I","J"]:
            malist.insert(END, item)
            malist.pack( side = LEFT, fill = BOTH )
            scrollbar.config( command = malist.yview )
     
     
     
                   # Créer la fenêtre parente
    root = Tk()
    root.title("Ma fenêtre")
                   # Créer les fenêtres dans parente 
            # 1ere fenetre a droite
    frame1 = Frame(root, bg="yellow", width=100, height=100, padx=10, pady=10)
    frame1.pack(side=RIGHT,fill=Y)
            # 1ere fenetre a gauche
    frame2 = Frame(root, bg="green", width=100, height=100, padx=10, pady=10)
    frame2.pack(side=LEFT,fill=Y)
            # Création d'une fenêtre text pour ajouter
            #le texte d'un fichier ouvert (pour l'exemple)
     
    text = tk.Text(root ,bg="gray", width=20, height=20, padx=10, pady=10)
    text.pack()
               # Creation barre Menu (nommer menubar)
            #dans la fenetre parent
    menubar = tk.Menu(root)
            #tearoff permet d'indiquer un détachement
            #entre les options et les actions
            #qu'on ajoutera par la suite...
     
    filemenu = tk.Menu(menubar, tearoff=0)
    editmenu = tk.Menu(menubar, tearoff=0)
     
               #definition des Titres des menus
    menubar.add_cascade(label='File', menu=filemenu)
    menubar.add_cascade(label='Edit', menu=editmenu)
     
     
     
               #Creation des actions pour chaque option
            #menu Menu
    filemenu.add_command(label='Ouvrir', command='a definir')
    filemenu.add_command(label='Sauvegarder', command='a definir')
    filemenu.add_command(label='Quitter', command=root.quit) # quitte le programme
     
            #menu Edit
    editmenu.add_command(label='ouvrir', command='a definir')
    editmenu.add_command(label='modif.', command='a definir')
    editmenu.add_command(label='cherche      ', command='a definir')
    editmenu.add_command(label='lister      ', command=listage)
    editmenu.add_command(label='mise a jour  ', command='a definir')
    # quitte le programme
    editmenu.add_command(label='Masquer', command=Masquer)
    editmenu.add_command(label='Quitter ', command=root.quit)
     
     
    frame = Frame(root)
    scrollbar = Scrollbar(frame, orient=VERTICAL)
    listbox = Listbox(frame, yscrollcommand=scrollbar.set)
    scrollbar.config(command=listbox.yview)
    scrollbar.pack(side=RIGHT, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
              # pour rendre visible la barre menu
    root.config(menu=menubar)
              # bouclage programme en fin de code
    root.mainloop()

  2. #2
    Membre éprouvé
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Points : 926
    Points
    926
    Par défaut
    Citation Envoyé par LEONARDO95 Voir le message
    Bonjour,
    je suis novice en programmation python je pense que mes erreurs sont tellement basique
    que les recherches faites sur le net non pas abouties,je n'ai pas trouvé de cas similaire
    ou je n'ai pas posé les bonnes questions.
    Donc voila,je lance l'application ensuite menu Edit et puis Lister .
    j'ai une fenêtre avec ma liste afficher.
    1: problème ,si je clique sur le bouton Ferme la liste ça ne fonctionne pas
    de plus si je refait Edit et puis Lister j’obtiens une nouvelle fenêtre ainsi de suite.

    2:problème,au lieu d'utiliser la commande Quit j'ai pris pack_forget().
    toujours Menu ensuite Masquer et la effectivement la liste afficher disparaît
    mais je suis incapable de la relancer sans être obliger de fermer et relancer l'application.
    voici le code, merci à tous pour votre aide
    Leonardo




    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    #essai de creation menu tres simple
     
     
    import tkinter as tk
    from tkinter import *
    from tkinter import Label
    from tkinter import Frame
     
    def save():
    	''' à compléter '''
    	pass
     
    def quitter():
            frame1.quit
            listbox = Frame(text, borderwidth=5, relief=GROOVE)
            listbox.pack(fill="both", expand="yes")
            Label(listbox, text="ne ferme pas la Frame liste").pack()
     
            print("ne ferme pas la liste")
     
    def Masquer():# masquer la listbox frame1/2
            frame1.pack_forget()
            listbox = Frame(text, borderwidth=5, relief=GROOVE)
            listbox.pack(fill="both", expand="yes")
            Label(listbox, text="masque la fenetre liste").pack()
            Label(listbox, text="relister command impossible").pack()
     
     
    def listage():       #creation boite listbox
     
     
           #donner un aspect a la frame
        listbox = Frame(frame1, borderwidth=5, relief=GROOVE)
           #donner un Nom au cadre d'une frame
        listbox = LabelFrame(frame1, text="Titre de la frame listing", padx=20, pady=20)
        listbox.pack(fill="both", expand="yes")
           #donner un Nom a l'interieur d'une frame
        Label(listbox, text="A l'intérieure de la frame").pack()
     
            # bouton de sortie
        bouton=Button(frame1, text="Fermer la liste", command=quitter)
        bouton.pack()
           #definition de la barre de defilement de cette boite
        scrollbar = Scrollbar(listbox)
        scrollbar.pack( side = RIGHT, fill=Y )
        malist = Listbox(listbox, yscrollcommand = scrollbar.set )
            #ecriture de item dans malist et ensuite dans la boite
        for item in ["un", "deux", "trois","quatre", "cinq","six", "sept", "huit", "neuf","dix", "A", "B", "C","D", "E", "F", "G","H","I","J"]:
            malist.insert(END, item)
            malist.pack( side = LEFT, fill = BOTH )
            scrollbar.config( command = malist.yview )
     
     
     
                   # Créer la fenêtre parente
    root = Tk()
    root.title("Ma fenêtre")
                   # Créer les fenêtres dans parente 
            # 1ere fenetre a droite
    frame1 = Frame(root, bg="yellow", width=100, height=100, padx=10, pady=10)
    frame1.pack(side=RIGHT,fill=Y)
            # 1ere fenetre a gauche
    frame2 = Frame(root, bg="green", width=100, height=100, padx=10, pady=10)
    frame2.pack(side=LEFT,fill=Y)
            # Création d'une fenêtre text pour ajouter
            #le texte d'un fichier ouvert (pour l'exemple)
     
    text = tk.Text(root ,bg="gray", width=20, height=20, padx=10, pady=10)
    text.pack()
               # Creation barre Menu (nommer menubar)
            #dans la fenetre parent
    menubar = tk.Menu(root)
            #tearoff permet d'indiquer un détachement
            #entre les options et les actions
            #qu'on ajoutera par la suite...
     
    filemenu = tk.Menu(menubar, tearoff=0)
    editmenu = tk.Menu(menubar, tearoff=0)
     
               #definition des Titres des menus
    menubar.add_cascade(label='File', menu=filemenu)
    menubar.add_cascade(label='Edit', menu=editmenu)
     
     
     
               #Creation des actions pour chaque option
            #menu Menu
    filemenu.add_command(label='Ouvrir', command='a definir')
    filemenu.add_command(label='Sauvegarder', command='a definir')
    filemenu.add_command(label='Quitter', command=root.quit) # quitte le programme
     
            #menu Edit
    editmenu.add_command(label='ouvrir', command='a definir')
    editmenu.add_command(label='modif.', command='a definir')
    editmenu.add_command(label='cherche      ', command='a definir')
    editmenu.add_command(label='lister      ', command=listage)
    editmenu.add_command(label='mise a jour  ', command='a definir')
    # quitte le programme
    editmenu.add_command(label='Masquer', command=Masquer)
    editmenu.add_command(label='Quitter ', command=root.quit)
     
     
    frame = Frame(root)
    scrollbar = Scrollbar(frame, orient=VERTICAL)
    listbox = Listbox(frame, yscrollcommand=scrollbar.set)
    scrollbar.config(command=listbox.yview)
    scrollbar.pack(side=RIGHT, fill=Y)
    listbox.pack(side=LEFT, fill=BOTH, expand=1)
              # pour rendre visible la barre menu
    root.config(menu=menubar)
              # bouclage programme en fin de code
    root.mainloop()
    Bonjour,
    Pour le premier problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def quitter():
            # frame1.quit
            for wid in frame1.winfo_children():
                wid.destroy()
            listbox2 = Frame(text, borderwidth=5, relief=GROOVE)
            listbox2.pack(fill="both", expand="yes")
            Label(listbox2, text="ne ferme pas la Frame liste").pack()
     
            print("ne ferme pas la liste")
    Le problème est qu'il faut supprimer les différents "widget" de la "frame" (ici, il y en a deux: le bouton et la "listbox" de la fonction précédente).
    Créer des "frame" sans parent déclaré ne me semble pas, ici, une bonne pratique.
    "frame1.quit" n'est pas un appel de fonction. Utiliser comme une fonction, ("frame1.quit()") cela fait sortir de l'application.

    Quand à la deuxième question, si "frame1" n'est plus référencée dans le gestionnaire de fenêtres (frame1.pack_forget()), alors pour qu'elle s'affiche à nouveau, il est nécessaire de la réinscrire.
    Mais tout ceci n'est vraiment pas propre: une "frame" n'a pas pour but d'être masquée et rappelée.

    Clodion

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 11
    Points : 11
    Points
    11
    Par défaut thinter affichage menu
    bonjour,Clodion
    avec un peu de retard(je suis sortie)merci pour votre aide la réponse est claire.
    la résolution du 1ere problème rend inutile l'utilisation de (frame1.pack_forget()).
    il est vrais que ce programme est à revoir mais je début .

    Leonardo

    Citation Envoyé par Clodion Voir le message
    Pour le premier problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def quitter():
            # frame1.quit
            for wid in frame1.winfo_children():
                wid.destroy()
            listbox2 = Frame(text, borderwidth=5, relief=GROOVE)
            listbox2.pack(fill="both", expand="yes")
            Label(listbox2, text="ne ferme pas la Frame liste").pack()
     
            print("ne ferme pas la liste")
    Le problème est qu'il faut supprimer les différents "widget" de la "frame" (ici, il y en a deux: le bouton et la "listbox" de la fonction précédente).
    Créer des "frame" sans parent déclaré ne me semble pas, ici, une bonne pratique.
    "frame1.quit" n'est pas un appel de fonction. Utiliser comme une fonction, ("frame1.quit()") cela fait sortir de l'application.

    Quand à la deuxième question, si "frame1" n'est plus référencée dans le gestionnaire de fenêtres (frame1.pack_forget()), alors pour qu'elle s'affiche à nouveau, il est nécessaire de la réinscrire.
    Mais tout ceci n'est vraiment pas propre: une "frame" n'a pas pour but d'être masquée et rappelée.

    Clodion

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Affichage menu apres clic ou pointage de la souris!
    Par M@t2802 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 22/02/2007, 21h27
  2. Problème affichage menu déroulant
    Par barbapapa2 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 04/11/2006, 10h18
  3. Affichage menu variable
    Par mosquitout dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 15/12/2005, 14h50
  4. Probleme affichage menu (.js)
    Par freud dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 01/10/2005, 16h27
  5. [CSS] espace avant affichage menu
    Par calimero82 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 25/05/2005, 09h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo