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 :

Exercice Gérard Swinnen evenement [Python 3.X]


Sujet :

Tkinter Python

  1. #1
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 11
    Points
    11
    Par défaut Exercice Gérard Swinnen evenement
    Bonjours tout le monde,

    Je bloque a l'exercice 13.19 dont voici l’énoncé : Écrivez une petite application qui fait apparaître une fenêtre avec un canevas et un widget curseur (Scale). Dans le canevas, dessinez un cercle, dont l'utilisateur pourra faire varier la taille à l'aide du curseur.

    J'ai déjà fais sa
    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
     
    from tkinter import *
     
    class Cercle(Tk):
            def __init__(self, larg=200, haut=150):
            	Tk.__init__(self)
            	self.rayon = 10
            	self.can = Canvas(self, width=larg, height=haut, bg="white")
            	self.can.pack(side = TOP, padx = 5, pady = 5)
                    self.afficheCercle(self.rayon)
                    Scale(self, length=150, orient=HORIZONTAL, sliderlength =20,     label='Taille du cercle :', from_=0, to=100, tickinterval =90, showvalue =0    , command = self.setRayon).pack(side=LEFT)
     
            def afficheCercle(self, x=500, y=50, r=30):
                   self.can.create_oval(x-r, y-r, x+r, y+r)
     
            def setRayon(self, r):
                   self.rayon = float(r)
                   self.event_generate('<Control-Z>')
     
            def changeTaille(self, event=None):
                   # Effacer le cercle existant
                   self.can.delete(self.afficheCercle)
     
                   # Crée le nouveaux cercle
                   self.afficheCercle(r = self.rayon)
     
    if __name__ == '__main__':
           root = Cercle()
           root.bind('<Control-Z>', root.changeTaille())
           root.mainloop()
    Voila je bloque je n'ai aucune idée de comment procéder avec les événement.

  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 776
    Points
    36 776
    Par défaut
    Salut,

    Ca c'est l'exercice 13.20.
    Il suppose que vous ayez étudié et compris le code qui sert de base aux exercices précédents.
    Notamment l'utilisation proposée du Ctrl-Z pour mettre à jour l'affichage.

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

  3. #3
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    Salut,

    Déjà merci de m'avoir répondu je commençais a perdre espoir de voir quelle qu'un répondre. Oui j'ai a peu prés compris les codes précédent mais j'ai une question: Est ce que je dois crée une classe pour le canvas et le widget Scale ou je met tout dans la méme classe (c'est a dire le gestionnaire d'évenement et le reste) ?

  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 776
    Points
    36 776
    Par défaut
    Salut,

    Citation Envoyé par werkos Voir le message
    Est ce que je dois crée une classe pour le canvas et le widget Scale ou je met tout dans la méme classe (c'est a dire le gestionnaire d'évenement et le reste) ?
    Bah... dans un premier temps essayez de faire fonctionner le truc en organisant le code comme vous le sentez.
    "tout dans la même classe" est, en principe, plus simple.
    Lorsque le code fonctionne, vous pourrez toujours le ré-organiser.

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

  5. #5
    Membre à l'essai
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2015
    Messages : 8
    Points : 11
    Points
    11
    Par défaut
    C'est bon j'ai réussi a terminer mon programme en m'inspirant du programme OscilloGraphe

    Pour ceux qui sont intéresser 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    from tkinter import *
     
    class Cercle(Canvas):
    	def __init__(self, boss =None, larg=250, haut=220):
    		Canvas.__init__(self)
    		self.configure(width=larg, height=haut, bg="white")
     
    	def traceCercle(self, x=125, y=110, r=30, coul="purple"):
    		self.create_oval(x-r, y-r, x+r, y+r, outline=coul)
     
    class ChoixRayon(Frame):
    	def __init__(self, boss =None):
    		Frame.__init__(self)
    		self.rayon = 0
     
    		# Widget curseur :
    		Scale(self, length =150, orient=HORIZONTAL, sliderlength =25,label='Rayon :', from_=1, to=100, tickinterval =30, showvalue =0, command =self.setRayon).pack(side=LEFT)
     
    	def setRayon(self, r):
    		self.rayon = float(r)
    		self.event_generate('<Control-Z>')
     
    class ShowCercle(Frame):
    	def __init__(self, boss =None):
    		Frame.__init__(self)
     
    		# Instanciation Canvas :
    		self.gra = Cercle(self)
    		self.gra.pack(side =TOP, pady=5)
     
    		# Instanciation Curseur :
    		self.controle = ChoixRayon(self)
    		self.controle.pack()
     
    		# Désignation de l'évenement :
    		self.master.bind('<Control-Z>', self.montreCercle)
    		self.master.title('Cercle')
    		self.pack()
     
    	def montreCercle(self, event):
    		# Efface le cercle dans le Canvas :
    		self.gra.delete(ALL)
    		# Trace un nouveaux cercle :
    		self.gra.traceCercle(r = self.controle.rayon)
     
    if __name__ == '__main__':
    	ShowCercle().mainloop()

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

Discussions similaires

  1. Les corrigés des exercices de Swinnen
    Par jery190 dans le forum Général Python
    Réponses: 12
    Dernier message: 12/02/2022, 15h31
  2. Réponses: 29
    Dernier message: 06/08/2021, 21h46
  3. [Python 3.X] Exercice Python Gérard Swinnen
    Par werkos dans le forum Général Python
    Réponses: 2
    Dernier message: 02/05/2015, 21h16
  4. Python3 (Apprendre à prog., de Gérard Swinnen)
    Par Garlic2 dans le forum Tkinter
    Réponses: 10
    Dernier message: 14/04/2012, 09h07
  5. Cours Gérard Swinnen
    Par guizmo91 dans le forum Tkinter
    Réponses: 2
    Dernier message: 16/05/2008, 17h40

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