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 :

fenêtre authentification ouvrant une nouvelle fenetre


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 10
    Points
    10
    Par défaut fenêtre authentification ouvrant une nouvelle fenetre
    Bonjour, j' ai le scritp ci-dessous qui ouvre une fenêtre d' authentification et qui à l' issue de la réussite, ouvre ou devrait ouvrir une nouvelle fenêtre avec des menu déroulant.
    le soucis c'est que dans mon cas, la fenêtre de menu d' exécute dans la même fenêtre que l' authentification.
    comment puis je faire ? ou plutôt comment puis je permettre la gestion de deux fenêtres.

    d' avance Merci !

    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
    from Tkinter import *
    import os
    import Tkinter
    import tkMessageBox
     
     
     
    #Tkinter.NoDefaultRoot()
    root=Tk()
    root.iconbitmap("rasp.xpm")
    root.update()
    root.eval('tk::PlaceWindow %s center' % root.winfo_pathname(root.winfo_id()))
    root.resizable(width=False, height=False)
    root.title("Authentification")
     
     
    #--Verification du mot de passe--
     
    def Verification(**retour):
        if Motdepasse.get() == 'mdp':
            # le mot de passe est bon : on affiche une boite de dialogue puis on ferme la fenetre
            command=menugepex()
            go=Button(root, text="Auth_reussi", command=progssh)
            tkMessageBox.showinfo('Resultat','Mot de passe correct.\nA vous de jouer !')
            go.pack(side = LEFT, padx = 5, pady = 5)
            root.destroy()
            quit()
     
        else:
            # --le mot de passe est incorrect--
            tkMessageBox.showwarning('Resultat','Mot de passe incorrect.\nVeuillez recommencer !')
            Motdepasse.set('')
            return retour
     
    # Creation d'un Label avec texte 'Mot de passe'
     
    #-----------------------------------------------------------
    #authmdp = LabelFrame(root, text="Authentification")
    #-----------------------------------------------------------
     
    authmdp = Label(root, text = 'Mot de passe ')
    authmdp.pack(side = LEFT, padx = 5, pady = 5)
     
    #--Centre la fenetre a l ecran--
     
    # Creation d'un champ de saisie
    Motdepasse= StringVar()
    Champ = Entry(root, textvariable= Motdepasse, show='*', bg ='bisque', fg='black')
    Champ.focus_set()
    Champ.pack(side = LEFT, padx = 5, pady = 5)
     
    # Creation bouton Valider
    Bouton = Button(root, text ='Valider', command = Verification)
    Bouton.pack(side = LEFT, padx = 5, pady = 5)
     
    # Creation bouton quitter
    Bouton = Button(root, text ='quitter',width=12,height=2,command=root.destroy, bg ='red', fg='white')
    Bouton.pack(side = LEFT, padx = 6, pady = 6)
     
    def menugepex():
        menubar = Menu(root)
        filemenu = Menu(menubar, tearoff=0, bg='black', fg='white', activebackground='red', activeforeground='yellow')
     
        quitmenu = Menu(menubar, tearoff=0)
        menubar.add_cascade(label="Quitter", command=root.destroy)
     
        root.config(menu=menubar)
        root.config(width=600, height=600)
        root.mainloop()
     
    #fermeture de la boucle
    root.mainloop()
     
     
    os.system("taskkill /f /im module_v1.exe");

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Salut,

    Citation Envoyé par sylpard Voir le message
    le soucis c'est que dans mon cas, la fenêtre de menu d' exécute dans la même fenêtre que l' authentification.
    comment puis je faire ? ou plutôt comment puis je permettre la gestion de deux fenêtres.
    Qu'est ce que vous appelez "fenêtre de menu"?
    De toutes façons avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    def Verification(**retour):
        if Motdepasse.get() == 'mdp':
            # le mot de passe est bon : on affiche une boite de dialogue puis on ferme la fenetre
            command=menugepex()
            go=Button(root, text="Auth_reussi", command=progssh)
            tkMessageBox.showinfo('Resultat','Mot de passe correct.\nA vous de jouer !')
            go.pack(side = LEFT, padx = 5, pady = 5)
            root.destroy()
            quit()
    outre que "progssh" n'existe pas, une fois le résultat affiché, root.destroy() tue l'interface graphique.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre à l'essai
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    désolé j' ai fait nimp car il y a des éléments qui n' auraient pas du être .
    finalement j' ai utilisé la fonction Toplevel et ca fonctionne .
    seul "hic" lorsque je valide le mot de passe la seconde fenêtre s' ouvre bien, mais la fenêtre d' authentification reste affiché .
    sauriez vous quelle commande je dois utiliser après avoir déclenché l' ouverture de ma seconde fenêtre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    def Verification(**retour):
        if Motdepasse.get() == 'motdepasse':
            # le mot de passe est bon :
            command=menugepex()

    Merci !

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par sylpard Voir le message
    seul "hic" lorsque je valide le mot de passe la seconde fenêtre s' ouvre bien, mais la fenêtre d' authentification reste affiché. sauriez vous quelle commande je dois utiliser après avoir déclenché l' ouverture de ma seconde fenêtre ?
    C'est la fenêtre principale, vous ne pouvez pas la détruire. Sinon la masquez via un .withdraw() ou apprendre à la réutiliser en détruisant ce que vous y avez mis dedans pour y placer autre chose.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre à l'essai
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    si j' utilise root.withdraw() cela me masque les deux fenêtres . mince de mince

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par sylpard Voir le message
    si j' utilise root.withdraw() cela me masque les deux fenêtres . mince de mince
    Quand vous avez un comportement surprenant, facile de reproduire le scenario à la console Python:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    >>> from tkinter import *
    >>> root = Tk()
    >>> w = Toplevel()
    >>> root.withdraw()
    ''
    >>>
    et de conclure que c'est pas juste .withdraw() qui fout la grouille.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  7. #7
    Membre à l'essai
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    euh non ce n' est pas un comportement surprenant puisque vous m' avez dis précédemment :

    "C'est la fenêtre principale, vous ne pouvez pas la détruire. Sinon la masquez via un .withdraw() ou apprendre à la réutiliser en détruisant ce que vous y avez mis dedans pour y placer autre chose."

    j'en conclu donc que mettre root.withdraw() va reduire les deux fenetres obligatoirement

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par sylpard Voir le message
    euh non ce n' est pas un comportement surprenant puisque vous m' avez dis précédemment :

    "C'est la fenêtre principale, vous ne pouvez pas la détruire. Sinon la masquez via un .withdraw() ou apprendre à la réutiliser en détruisant ce que vous y avez mis dedans pour y placer autre chose."

    j'en conclu donc que mettre root.withdraw() va reduire les deux fenetres obligatoirement
    Je ne comprends pas comment vous arrivez a cette conclusion. En tous cas, mon petit exemple montre que çà ne masque que la fenêtre à qui on a appliqué la méthode .withdraw().

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  9. #9
    Membre à l'essai
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    je suis sous python 2.7 et quand je lance votre script et bien rien ne se passe d' ou ma conclusion

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 287
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 287
    Points : 36 778
    Points
    36 778
    Par défaut
    Citation Envoyé par sylpard Voir le message
    je suis sous python 2.7 et quand je lance votre script et bien rien ne se passe d' ou ma conclusion
    Ce n'est pas un script mais des commandes à taper à l'interpréteur Python.
    Pour les exécuter sous Python 2, il faut remplacer la première ligne from tkinter import * par from Tkinter import *.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  11. #11
    Membre à l'essai
    Homme Profil pro
    Superviseur de Hotline
    Inscrit en
    Septembre 2016
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Superviseur de Hotline
    Secteur : Bâtiment

    Informations forums :
    Inscription : Septembre 2016
    Messages : 34
    Points : 10
    Points
    10
    Par défaut
    ahhhhhhh ok alors oui cela fonctionne en ligne de commande, il y doit y voir un "grigri" dans mon script pour ne pas que cela fonctionne ...

    bon je regarde ça ... Merci !!!!

Discussions similaires

  1. [Templates] Lien hypertexte ouvrant une nouvelle fenêtre
    Par BILANGA dans le forum Bibliothèques et frameworks
    Réponses: 3
    Dernier message: 16/03/2011, 17h31
  2. Lien cliquable Ouvrant une nouvelle fenetre ?
    Par darksider dans le forum Dreamweaver
    Réponses: 1
    Dernier message: 19/01/2010, 09h52
  3. Fonction print ouvrant une nouvelle fenêtre shell
    Par nymus7 dans le forum Langage
    Réponses: 2
    Dernier message: 23/01/2008, 08h15
  4. lien ouvrant une nouvelle fenêtre
    Par Gary dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/08/2006, 16h14
  5. [VB6] Ouverture d'une nouvelle fenêtre dans un MDI
    Par pepper dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 17/02/2003, 14h03

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