Partage
  • Partager sur Facebook
  • Partager sur Twitter

QCM avec tkinter, les Entry et les Frame

    1 janvier 2022 à 19:02:09

    Bonjour à tous,

    J'aurais une question concernant Tkinter.

    J'ai créé différents un QCM et j'ai besoin d'y faire une interface graphique avec Tkinter. J'ai créé au préalable, plusieurs design de frame et label a mettre dans une fenêtre.

    Sauf que je n'ai ni trouvé, ni compris comment est-ce que je peux passer d'une frame a une autre en demandant a l'utilisateur d'appuyer sur un bouton. Et comment est ce que je peux mettre la valeur que l'utilisateur a entré dans une Entry dans une variable et que seras réutilisée plus tard 

    Merci d'avance et bonne année a vous

    Je ne sais pas si je poste avec, les deux design fait pour vous aider a répondre a ma question et ou le QCM fait sans Tkinter

    from tkinter import *
    
    
    Fenetre = Tk()
    Fenetre.config(background = '#8BB2DF')
    Fenetre.title('Questions à choix multiples NSI')
    
    #premier deign 
    Cadre_titre = Frame(padx = '2', pady = '2' , bg = 'black',width = '5',bd = '2')
    Cadre_titre.pack(pady = '40')
    Titre = Label(Cadre_titre,text = 'BIENVENUE DANS LE QCM', \
                  font = ("Franklin Gothic Demi" , 50 ), padx = '50', pady = '30' )
    Titre.pack()
    Fenetre_secondaire = Frame(Fenetre, padx = '20' , pady = '10')
    Fenetre_secondaire.pack(side = BOTTOM, pady = '70')
    
    Sous_titre = Label(Fenetre_secondaire, text = 'Entrez votre prenom ci dessous',\
                       font = ("Franklin Gothic Demi" , 20 ))
    Sous_titre.pack(side = TOP,pady = '10')
    
    Validation = Button(Fenetre_secondaire, text = 'Valider', font = ("Franklin Gothic Demi" , 15 ), bd = 5\
                        ,padx = '50' )
    Validation.pack(padx = '30' ,side = RIGHT)
    
    Demande_prenom = Entry(Fenetre_secondaire, width = '50',font = ("Franklin Gothic Demi" , 25 ))
    Demande_prenom.pack(side = LEFT)
    Fenetre.mainloop()
    
    
    print("Bonjour", prenom, '.')
    regles = 'Voici les règles du jeu : Vous aurez 10 questions à choix multiples\
      portant sur le thème de la NSI.Vous devrez répondre par A, B, C ou D. Si\
      vous répondez juste au premier essai , vous gagnez 1 point. Si votre réponse\
      est fausse, vous pourrez choisir de réessayer ou non. Si vous répondez juste\
      au deuxième essai, vous gagnez 0.5 point mais si votre réponse est encore\
      fausse, vous perdez 1 point. Votre score vous sera donné à la fin. Bonne\
      chance et amusez-vous bien !'
      
      
    #deuxieme design
    Fenetre_secondaire = Frame(Fenetre, padx = '30', bg = '#E7271B')
    Fenetre_secondaire.pack(side = BOTTOM, pady = '20')
    
    Sous_titre = Label(Fenetre, text = regles,\
                       font = ("Franklin Gothic Demi" , '20' ), pady = '150', padx = '5')
    Sous_titre.pack(expand = YES)
    
    
    Demande_prenom = Button(Fenetre_secondaire, text = 'Refuser', font = ("Franklin Gothic Demi" , 15 ), bd = 5\
                        ,padx = '100')
    Demande_prenom.pack(side = LEFT)
    
    Validation = Button(Fenetre_secondaire, text = 'Valider', font = ("Franklin Gothic Demi" , 15 ), bd = 5\
                        ,padx = '100')
    Validation.pack(padx = '30' ,side = RIGHT)
    
    Fenetre.mainloop()

    -
    Edité par B4T000 1 janvier 2022 à 19:04:00

    • Partager sur Facebook
    • Partager sur Twitter
      1 janvier 2022 à 19:54:59

      BaptisteTena a écrit:

      Sauf que je n'ai ni trouvé, ni compris comment est-ce que je peux passer d'une frame a une autre en demandant a l'utilisateur d'appuyer sur un bouton. Et comment est ce que je peux mettre la valeur que l'utilisateur a entré dans une Entry dans une variable et que seras réutilisée plus tard

      C'est pour ça qu'il y a des tutos, histoire de comprendre comment ça marche avant de se lancer dans l'aventure.
      • Partager sur Facebook
      • Partager sur Twitter
        1 janvier 2022 à 23:57:09

        BaptisteTena a écrit:

        Sauf que je n'ai ni trouvé, ni compris comment est-ce que je peux passer d'une frame a une autre en demandant a l'utilisateur d'appuyer sur un bouton. 

        Comme vous l'a dit mps, vous ne maîtrisez pas les bases de la programmation par événements puisque vous pensez que ça va marcher en créant deux mainloop successives. 

        Concernant le widget Entry et récupérer la chaîne fournie, regardez cet exemple

        Pour le frame, tout dépend de ce que vous voulez faire.

        Coder (proprement) un QCM à peu près ergonomique n'est pas si simple, et si c'est votre premier projet, vous allez certainement avoir du mal au vu des questions que vous avez posées.

        • Partager sur Facebook
        • Partager sur Twitter

        QCM avec tkinter, les Entry et les Frame

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        • Editeur
        • Markdown