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 :

[Tkinter] Interface graphique de QCM


Sujet :

Tkinter Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2014
    Messages : 183
    Par défaut [Tkinter] Interface graphique de QCM
    Bonjour tout le monde !
    Alors voila j'ai un projet d'informatique a faire pour le bac car je suis en spécialité informatique seulement j'ai quelques petits soucis que mon prof ne peut résoudre c'est pourquoi je suis ici :)
    alors je souhaite faire un QCM avec une interface graphique sur Tkinter. je joins le programme qui me pose problème dont le problème est justement Q str(k) que l'on retrouve plusieurs fois tout au long du programme.
    Si vous pouviez résoudre ce problème je pourrais continuer à avancer sur mon projet merci d'avance ! :)


    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
    from Tkinter import*     
    Fen1=Tk()               
    Fen1.title(u"Projet Final")
     
     
    Af1=Label(Fen1, text= u"Bonjour, vous allez maintenant pouvoir commencer le jeu de Manon. Etes-vous prêt ?")          #Présentation
    Af2=Label(Fen1, text="")                #Enoncé
    Af3=Label(Fen1, text="")                #Rép1
    Af4=Label(Fen1, text="")                #Rép2
    Af5=Label(Fen1, text="")                #Rép3
    Af6=Label(Fen1, text="Quelle est votre réponse ?")      
    Af7=Label(Fen1, text="")        # On l'utilisisera pour dire bonne ou mauvaise réponse.
    Ent1=Entry(Fen1)            #Le joueur y rentrera sa réponse
     
    n=0             #Compteur du nombre de click sur le bout1
    k=1             #Compteur des questions
    def ma_commande1():
        global n            
        global k            
        n=n+1           # Le compteur de click augmentera à chaque click, ou à chaque fois que la commande est éxecutée !
        if n==1:        # APrès le premier click :
            Af1.configure ( text=u"Veuillez répondre en entrant la lettre correspondant à votre choix.")                
            Bout1.configure(text=u"Ok")
        elif n==2:          # Après le deuxième click le jeu commence. 
            Af1.pack_forget()               #L'affichage 1 ne sera plus utile.
            Af2.pack()                  # On affiche l'énoncé des questions.      
            Af3.pack()
            Af4.pack()
            Af5.pack()
            Af6.pack()
            Ent1.pack()                 # On affiche l'endroit où le joueur rentrera sa réponse        
            Bout1.configure(text=u"Valider ma réponse.")        # Le bouton 1 vérifiera dorénavant la justesse de la réponse
            Af2.configure ( text=u"Question"+str(k)+            # Affichage des réponses. 
                            Q str(k).enonce)                    
            Af3.configure ( text=u"Réponse A :"
                            Q str(k).rep1)
            Af4.configure ( text=u"Réponse B :"
                            Q str(k).rep2)
            Af5.configure ( text=u"Réponse C :"
                            Q str().rep3)
        else:               # A chaque fois que le joueur clickera sur le bouton 1, la réponse du joueur sera vérifiée.
            repjoueur=Ent1.get()        #On enregistre la réponse sous un autre nom qui nous permettra de meux la reconnaitre.
            repjoueur= repjoueur.upper()        # Ce que rentre le joueur est mis en majuscule.
            if repjoueur=Q str(k).repjuste:     
                Af7.pack()
                Af7.configure(text=u"Bonne réponse ! vous pouvez passer la question suivante")
                Bout2.pack()        # LE bouton permettant de passer à la question suivante apparait.
            else :
                Af7.pack()
                Af7.configure(text=u" Mauvaise réponse ! Vous avez répondu "+repjoueur+" alors que la bonne réponse était la "+Q str(k).repjuste+".")     
                Bout2.pack()          
     
    def ma_commande2 ():            # Commande pour paser à la question suivante.
        k=k+1               #On augmente le compteur de question.    
        Ent1.delete(0,END)
        Af2.configure ( text=u"Question"+str(k)+            # On affiche la question suivante.           
                            Q str(k).enonce)
        Af3.configure ( text=u"Réponse A :"
                            Q str(k).rep1)
        Af4.configure ( text=u"Réponse B :"
                            Q str(k).rep2)
        Af5.configure ( text=u"Réponse C :"
                            Q str(k).rep3)      
        Bout2.pack_forget()             #Le bouton disparait
     
     
    Bout1=Button(Fen1,text=u"Oui",command=ma_commande1)
    Bout2=Button(Fen1,text=u"Question Suivante",command=ma_commande2)
     
     
    Af1.pack()
    Af2.pack_forget()
    Af3.pack_forget()
    Af4.pack_forget()
    Af5.pack_forget()
    Af6.pack_forget()
    Ent1.pack_forget()
    Bout1.pack()
    Af7.pack_forget()
    Bout2.pack_forget()
     
    Fen1.mainloop()



    Merci d'avance !!

  2. #2
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Salut,

    Il faut absolument poster ton code entre des balises code, le # dans la barre d'outils d'édition.

    c'est quoi ça:
    ?

    qu'est-ce que "Q" d'une part et d'autre part, à ma connaissance, les str() n'ont pas d'attribut enonce ...

  3. #3
    Membre très actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2014
    Messages : 183
    Par défaut réponse
    Bonjour merci d'avoir répondu !

    A quoi servirai le # ?

    Q est la classe Question comme je fais un QCM, .ennonce corresponds a l'ennoncé de la question puisque j'enregistre par Tkinter l'ennoncé les reponse 1 la réponse 2, la réponse 3 et la réponse juste. donc Q str(k).ennonce correspond dans le programme a l'ennoncé d'une question pour ainsi passer seulement la commende a la question suivante.

  4. #4
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    A quoi servirai le # ?
    Lorsque tu édite sur un forum, tu dispose, en général, d'outils d'édition tels que police ou style ou graisse de caratère, mais aussi de la possibilité de caractériser certain block de texte.

    Exemple:

    Je tape un caractère "crochet ouvrant" (celui-la "[") ensuite j'inscris le mot "code" et je termine avec un caractère "crochet sortant" (celui-la "]").

    après quoi je peux faire profiter à la communauté de mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    print("hello world")
    Ce n'est pas fini !

    Il va encore falloir rajouter un caractère "crochet ouvrant" (celui-la "[") ensuite le mot "/code" et un caractère "crochet sortant" (celui-la "]") pour être tout à fait accepté par cette communauté.



    Q est la classe Question comme je fais un QCM
    Il n'y a aucune classe dans le code que tu nous montre.


    Ceci:
    N'existe pas en Python, en aucune manière. dieu merci.

  5. #5
    Membre très actif
    Femme Profil pro
    Lycéen
    Inscrit en
    Février 2014
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 29
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Février 2014
    Messages : 183
    Par défaut réponses
    ah je ne savais pas mais les modérateurs l'ont fait a ma place

    oui c'est dans un autre programme complémentaire a celui ci qui permets de faire ce que je vous ai expliqué.

    justement je demandais ce qu'il pouvait remplacer cela, c'est ma question de départ.

  6. #6
    Expert confirmé

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

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 307
    Par défaut
    Si "Q" est une classe provenant d'un autre script, il faudra l'importer alors et peut-être même l'instancier aussi. Selon le cas.

    Et ça n'explique toujours pas ceci:
    str(k) défini une chaîne de texte dont la valeur est référencée par "k" et lorsque tu y ajoutes .rep1 tu en appelles à un attribut de cette chaîne, ou une méthode dont tu aurais oublié les parenthèses.

    Est-ce que "Q" est une classe contenant les questions et réponses ? Est-ce que "k" est un chiffre ou une clé de dictionnaire ? Est-ce que "rep1" est une clé de dictionnaire ?

    "In the face of ambiguity, refuse the temptation to guess."
    Montre nous la classe Q, du moins son début, que l'on comprenne.

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

Discussions similaires

  1. Problème avec mon interface graphique Tkinter
    Par SamirIV dans le forum Tkinter
    Réponses: 0
    Dernier message: 09/05/2014, 21h08
  2. Réponses: 4
    Dernier message: 02/05/2014, 20h23
  3. Interface graphique avec python et tkinter
    Par MrTGR57 dans le forum Tkinter
    Réponses: 0
    Dernier message: 23/04/2014, 17h10
  4. Tkinter interface graphique Toplevel
    Par beber74 dans le forum Tkinter
    Réponses: 3
    Dernier message: 13/04/2013, 10h28
  5. plugin interface graphique
    Par jocelyn dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 13/08/2003, 09h49

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