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

Python Discussion :

aide sur tkinter


Sujet :

Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 32
    Points : 20
    Points
    20
    Par défaut aide sur tkinter
    Bonsoir.

    Je souhaiterai, avec l'aide du module tkinter créer des fenetres interactives mais j'avoue avoir beaucoup de mal.
    J'ai créé une fenetre qui contient un bouton qui me permet d'ouvrir une deuxieme fenetre. Dans la premiere fenetre j'ai pus créer des widget fram mais je n'arrive pas à en créer dans la deuxieme fenetre.

    Voici mon code:

    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
     
     
    # -*-coding:Latin-1 -*
    import os
    from random import *
    from tkinter import *
     
    # Configuration de la fenetre principale
    racine0=Tk()
    racine0.title("ANALYSE")
    racine0.geometry("400x300+10+10")
    racine0.minsize(400,300)
    racine0.maxsize(400,300)
    racine0.positionfrom("user")
    racine0.protocol("WM_DELETE_WINDOW",racine0.destroy)
     
    #configuration fenetre 2
     
    def top():
         feneU=Toplevel(racine0)
         feneU.title("ANALYSE2")
    labelU=Label(top,text="AJOUT")
     
    # Creation des widget frame dans la fenetre principale
     
    fram=Frame(racine0,borderwidth=2,relief=GROOVE)
    Label(fram,text=" AJOUT1").pack(side=TOP)
    Button(fram, text="USA", fg='navy', command=top).pack(side="left", padx=50, pady=5)
     
     
    racine0.mainloop()
    os.system("pause")
    Et voila le message d'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    Traceback  (most recent call last):
       File "C:/Python32/essai Tkinter2.py", line 21, in <module>
         labelU=Label(top, text="AJOUT")
       File "C:\Python32\lib\tkinter\__init__.py", line 2459, in __init__
         Widget.__init__(self, master, 'label', cnf, km)
       File "C:\Python32\lib\tkinter\__init__.py", line 1951, in __init__
         BaseWidget._setup(self, master, cnf)
       File "C:\Python32\lib\tkinter\__init__.py", line 1929, in _setup
         self.tk = master.tk
    AttributeError: 'function'  object has no attribute  'tk'

  2. #2
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Salut,

    Cette ligne labelU=Label(top,text="AJOUT") doit être indentée au même niveau que celle qui la précède et le premier argument top doit être fenU.

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Merci pour ta reponse. Je bien d'indenter comme tu me l'a dit mais pour ce qui conserne " le premier agument de top doit etre feneU " Je ne compremds pas et ne sais pas comment faire.

    c'est bien en écrivant " feneU=Toplevel(racine0) " qu'on crée une nouvelle fenetre non?

  4. #4
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Je n'ai pas écrit "le premier argument de top" mais "le premier argument top"

    top est une fonction et ne peut pas être le parent du label.

    Si ton label apparaît dans la boîte de dialogue, comme on le devine, alors c'est fenU qui doit en être le parent.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Merci ça a marché.

    Maintenant j'aimerai savoir comment faire pour avoir une seul fenetre principale, L'image F1 mais qu'en cas de demande d'ouverture d'une nouvelle image F2,
    l'image F1 est effacerest et est remplacer pas l'image F2.
    En faite je voudrai avoir une seule fenetre et pas dix fenetre qui s'ouvre.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Salut,

    Citation Envoyé par djobadi Voir le message
    Maintenant j'aimerai savoir comment faire pour avoir une seul fenetre principale, L'image F1 mais qu'en cas de demande d'ouverture d'une nouvelle image F2,
    l'image F1 est effacerest et est remplacer pas l'image F2.
    Certes mais le code que vous avez posté n'affiche aucune 'image"....

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

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 32
    Points : 20
    Points
    20
    Par défaut
    Desolé le mot que je voulais utilisé n'est pas image mais contenu.

    Dans mon code, en appuyant sur le bouton USA, grace à toplevel une nouvelle fenetre s'ouvre mais même si elle est attaché à la fenetre principale c'est quand même une fenetre à part au niveau affichage. moi ce que je voudrai c'est une fonction qui me permette ( en appuyant sur le bouton USA ) d'avoir le premier contenu1 de la fenetre principale ramplacer par le contenu2 mais sans ouvrir une deuxième fenetre comme le ferai la fonction toplevel.

    Dans contenu1 il y a le bouton USA, le titre analyse, le label ajout.
    Dans contenu2 il y a le label ajout1.

    lorsque j'appuis sur USA, contenu1 est remplacé par contenu2 mais tous cela dans fenetre principale sans ouvrir une fenetre2.

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 283
    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 283
    Points : 36 770
    Points
    36 770
    Par défaut
    Citation Envoyé par djobadi Voir le message
    Dans contenu1 il y a le bouton USA, le titre analyse, le label ajout.
    Dans contenu2 il y a le label ajout1.

    lorsque j'appuie sur USA, contenu1 est remplacé par contenu2 mais tous cela dans fenetre principale sans ouvrir une fenetre2.
    Il y a plein de solutions pour réaliser çà. Vous pouvez commencer par détruire "fram" et créer une autre Frame pour y inclure le contenu souhaité et l'afficher à la place de "fram".
    Pour les détails, il faut choisir une des documentations/tuto. proposés ici et apprendre à programmer avec tkinter.

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

Discussions similaires

  1. [python3+tkinter]demande d'aide sur un programme.
    Par ivigu dans le forum Général Python
    Réponses: 8
    Dernier message: 13/02/2013, 06h45
  2. [CR] besoin d'aide sur les formules
    Par GuillaumeDSA dans le forum Formules
    Réponses: 4
    Dernier message: 10/07/2003, 12h19
  3. Réponses: 2
    Dernier message: 27/02/2003, 01h33
  4. [Kylix] Aide sur BitBlt
    Par mic006 dans le forum EDI
    Réponses: 1
    Dernier message: 10/12/2002, 22h54
  5. Aide sur une fenetre
    Par Ray-j dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 29/11/2002, 08h51

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