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 :

modifier la couleur du contour d'un cercle


Sujet :

Tkinter Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Points : 79
    Points
    79
    Par défaut modifier la couleur du contour d'un cercle
    Bonjour

    Ma question est toute bête: je trace des ovales, j'aimerais qu'il ne soit pas remplis mais que le contour soit coloré à la palce du noir. Donc quand je tape

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    can.create_oval(x1,y1,x2,y2,width=10)
    Il me manque le nom d'un argument, du genre fill_width ou autre :s
    Le connaissez-vous ?

    Merci d'avance

  2. #2
    Membre expérimenté Avatar de pacificator
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 074
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 074
    Points : 1 728
    Points
    1 728
    Par défaut
    Bonjour,
    Il me manque le nom d'un argument, du genre fill_width ou autre :s
    Le connaissez-vous ?
    une petite recherche sur => outline ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup, je rechercherais sur google la prochaine fois^^

    Un problème assez étonnant vient de m'arriver pour la première fois: mes fonctions se lancent automatiquement sans que je clique sur les boutons correspondants!

    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
      1 from Tkinter import *
      2 
      3 #--- definition des fonctions gestionnaires d'evenements ---
      4 
      5 def trace_cercle(xc,yc,couleur):
      6     can.create_oval(xc-44,yc-50,xc+44,yc+50,width=10,outline=couleur)
      7 
      8 #--- __main___
      9 
     10 fen=Tk()
     11 can=Canvas(fen,bg='dark grey', height=250,width=400)
     12 can.pack()
     13 bouton4=Button(fen,text='Cercle 1',command=trace_cercle(100,100,'blue'))
     14 bouton4.pack(side=LEFT)
     15 bouton5=Button(fen,text='Cercle 2',command=trace_cercle(200,100,'black'))
     16 bouton5.pack(side=LEFT)
     17 bouton6=Button(fen,text='Cercle 3',command=trace_cercle(300,100,'red'))
     18 bouton6.pack(side=LEFT)
     19 bouton7=Button(fen,text='Cercle 4',command=trace_cercle(150,150,'yellow'))
     20 bouton7.pack(side=LEFT)
     21 bouton8=Button(fen,text='Cercle 5',command=trace_cercle(250,150,'green'))
     22 bouton8.pack(side=LEFT)
     23 bouton1=Button(fen,text='Quitter',command=fen.quit)
     24 bouton1.pack(side=LEFT)
     25 
     26 fen.mainloop()
     27 fen.destroy()
    Je ne comprend vraiment pas pourquoi les cercles sont tracés dès le départ :s
    Serait-ce parce que j'ai rajouté des arguments à la fonction dans le Button ?

    edit: J'ai ajouté un autre bouton qui efface le canevas via la commande can.delete(ALL). Le résultat est que rien ne s'affiche sur le canevas au départ, mais quand je clique sur les boutons rien ne se passe non plus :s

  4. #4
    Expert éminent sénior
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Points : 10 067
    Points
    10 067
    Par défaut
    il faut passer au paramètre command une fonction et non son résultat :
    http://python.developpez.com/faq/?pa...#ButtonCommand
    http://python.developpez.com/faq/?pa...onCommandParam

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 206
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup, ça fonctionne

    Voici le résultat si ça intéresse quelqu'un:

    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
      from Tkinter import *
      2 
      3 #--- definition des fonctions gestionnaires d'evenements ---
      4 
      5 def trace_cercle(xc,yc,couleur):
      6     can.create_oval(xc-44,yc-50,xc+44,yc+50,width=10,outline=couleur)
      7 
      8 #--- __main___
      9 
     10 fen=Tk()
     11 can=Canvas(fen,bg='white', height=250,width=400)
     12 can.pack()
     13 bouton1=Button(fen,text='Cercle 1',command=lambda yc=100:trace_cercle(100,yc,'blue'))
     14 bouton1.pack(side=LEFT)
     15 bouton2=Button(fen,text='Cercle 2',command=lambda yc=100:trace_cercle(200,yc,'black'))
     16 bouton2.pack(side=LEFT)
     17 bouton3=Button(fen,text='Cercle 3',command=lambda yc=100:trace_cercle(300,yc,'red'))
     18 bouton3.pack(side=LEFT)
     19 bouton4=Button(fen,text='Cercle 4',command=lambda yc=150:trace_cercle(150,yc,'yellow'))
     20 bouton4.pack(side=LEFT)
     21 bouton5=Button(fen,text='Cercle 5',command=lambda yc=150:trace_cercle(250,yc,'green'))
     22 bouton5.pack(side=LEFT)
     23 bouton_quit=Button(fen,text='Quitter',command=fen.quit)
     24 bouton_quit.pack(side=LEFT)
     25 
     26 fen.mainloop()
     27 fen.destroy()

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

Discussions similaires

  1. Modifier la couleur d'un cercle
    Par sancho.poncho dans le forum Tkinter
    Réponses: 7
    Dernier message: 02/12/2012, 17h48
  2. Modifier la couleur d'un cercle correspondant à la ligne d'une ComboBox
    Par Inaky dans le forum Interfaces Graphiques en Java
    Réponses: 2
    Dernier message: 15/11/2011, 17h15
  3. Contour/Bordure, modifier la couleur ?
    Par Gf6HqmTW dans le forum BIRT
    Réponses: 0
    Dernier message: 04/06/2009, 14h30
  4. [C#] [DataGrid] Modifier la couleur d'une ligne
    Par nalaya dans le forum Windows Forms
    Réponses: 4
    Dernier message: 27/08/2004, 12h11
  5. Modifier la couleur de fond d'un popupmenu
    Par lil_jam63 dans le forum Composants VCL
    Réponses: 6
    Dernier message: 05/08/2004, 20h23

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