begin process at 2012 05 24 21:54:54
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Python

 > 

Divers

 > 

Débutant(e)

 > 

changement des propriétés d'un objet


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

changement des propriétés d'un objet

lundi 25 janvier 2010 à 10:09:50 | changement des propriétés d'un objet

nikko76600

Bonjour a tous et a toutes,

Je suis débutant dans la programmation en python (j'ai commencé il y a 3 jours) et je pose ma première question ici (qui ne sera sans aucun doute pas la dernière...)

J'ai un script qui utilise Tkinter pour afficher une petite animation, a l'aide de la récursivité d'une fonction (ca ce dit "récursivité d'une fonction ?"). Voici le code :

==================================================
# -*- coding: Latin-1 -*-
from Tkinter import *

def move():
global x, y, dx, dy
x, y = x+dx, y+dy
if x >180:
x, dx, dy = 180, 0, 5
if y >180:
y, dx, dy = 180, -5, 0
if x <20:
x, dx, dy = 20, 0, -5
if y <20:
y, dx, dy = 20, 5, 0
can.coords(balle, x-10, y-10, x+10, y+10)
if flag==1:
fenetre.after(30,move)

def start():
global flag
if flag==0:
flag=1
move()

def stop():
global flag
flag=0

x, y = 20, 20
flag = 0
dx, dy = 5, 0

fenetre = Tk()
fenetre.title("exo d'anim ac Tkinter")

can = Canvas(fenetre, width=200, height=200, bg='white', bd=1, relief=GROOVE)
can.pack(side=LEFT)
balle = can.create_oval(x-10, y-10, x+10, y+10, fill='red')

dem = Button(fenetre, text="demmarer", width=8, command=start).pack(side=TOP)
arr = Button(fenetre, text="arreter", width=8, command=stop).pack(side=TOP)
==================================================

Dans mon tuto, il y a un exercice qui demmande de faire varier la couleur de la balle a chaque "virage". J'ai donc essayer de placer can.configure(balle, fill='blue') par exemple dans un des if qui determine si il faut tourner, mais la console m'a renvoyé une erreur. Quel est donc la methode a utiliser pour effectuer cette action ?

Merci beaucoup, Nils

edit : ca doit etre vraiment super simple quand on connais tkinter depuis des annees, mais il y a quelques jours, je pensait que python etait juste un gros serpent... J'aimerai une réponse si possible pas trop agressive... :)
mardi 26 janvier 2010 à 21:23:03 | Re : changement des propriétés d'un objet

nyko77

Bonjour,
tu y es presque. il faut utiliser .itemconfigure() et non pas configure() pour modifier les attributs d'un item. .configure() modifie les propriétés du canvas (taille, couleur...) mais pas celles des items.

Code Python :
# -*- coding: Latin-1 -*-
from Tkinter import *

def move():
	global x, y, dx, dy
	x, y = x+dx, y+dy
	if x >180:
		can.itemconfigure(balle, fill=colors[1])
		x, dx, dy = 180, 0, 5
	if y >180:
		can.itemconfigure(balle, fill=colors[2])
		y, dx, dy = 180, -5, 0
	if x <20:
		can.itemconfigure(balle, fill=colors[3])
		x, dx, dy = 20, 0, -5
	if y <20:
		can.itemconfigure(balle, fill=colors[0])
		y, dx, dy = 20, 5, 0
	can.coords(balle, x-10, y-10, x+10, y+10)
	
	if flag==1:
		fenetre.after(30,move)

def start():
	global flag
	if flag==0:
		flag=1
		move()

def stop():
	global flag
	flag=0

x, y = 20, 20
colors = ["red", "blue", "green", "yellow"]

flag = 0
dx, dy = 5, 0

fenetre = Tk()
fenetre.title("exo d'anim ac Tkinter")

can = Canvas(fenetre, width=200, height=200, bg='white', bd=1, relief=GROOVE)
can.pack(side=LEFT)
balle = can.create_oval(x-10, y-10, x+10, y+10, fill=colors[0])

dem = Button(fenetre, text="demmarer", width=8, command=start).pack(side=TOP)
arr = Button(fenetre, text="arreter", width=8, command=stop).pack(side=TOP)

fenetre.mainloop()

mercredi 27 janvier 2010 à 00:30:51 | Re : changement des propriétés d'un objet

nikko76600

super !! Merci beaucoup, très sympa :)
une autre petite question a ce sujet... on peut-on trouver toute ces "classes" ? (je ne connais pas encore le tous vocabulaire...)

Encore merci :)
mercredi 27 janvier 2010 à 21:03:08 | Re : changement des propriétés d'un objet

nyko77

Voila un lien vers la documentation tkinter: [ Lien ]. tu y trouveras tous les objets disponible pour Tkinter (en anglais bien sûr).
mercredi 27 janvier 2010 à 23:57:14 | Re : changement des propriétés d'un objet

nikko76600

nickel, merci bcp !


Cette discussion est classée dans : fenetre, dx, dy, flag, if


Répondre à ce message

Sujets en rapport avec ce message

Socket : charger ip depuis fichier [ par Shinji ] Bonjour @ ttes et @ ts, voici mon pb:  j'essaye de faire une petite app client/serveur et j'aimerais pouvoir enregister l'ip/port du serveur dans un Les forms [ par Ouk18 ] Ok, vous allez penser, suis la il vien de VB ou de HTML, je voulais definir des fenetre a l'interieur d'une autre fenetre.Seulement je maitrise pas du l' ohm ? [ par Nightfighter ] Bonjour tout le mondeAlors voila, je sais pas comment faire pour inserer un caracter ohm dans un fenetre:jai esseye dobtenir le code pour ce symbole:o Débutant en python... problème avec les fonctions [ par pedro ] Bonjour,Je suis sur python depuis quelques heures... en plus les languages orientés objets sont un peu nouveau pour moi... J'essaie désesperement de f utilisation de tkMessageBox [ par cynthia06 ] Bonjour a tous,Ma question va sans doute paraitre tres bete.J'essaie d'afficher un message avec tkMessageBox.Pour cela je fais:from Tkinter import *im svp urgent [ par hasna1980 ] salut je suis entrain de faire une view  qui sert a afficher des modules autorises pour un utilisateur donne ,pr certains ca va afficher 1 module pr d Problème sur la taille de fenetre en Tkinter [ par stephane70 ] Bonjour, Je mets en place un petit programme destiné à faire un instantanée graphique des connections en cours sur le pc ainsi que les executables en bot irc python problème rejoindre channel [ par Kuby ] Bonjour, voila, après avoir un petit peu fouiller sur le net, j'ai reussi a trouver / modifier ceci : Mais je n'arrive pas à rejoindre de channel... a tri de fichier [ par mtanfin ] Bonjour;Alors voilà en fait je voudrais trier des fichiers en fonction de leur date de création. en fait le but est de regarder dans chaque fichier si aide tkinter [ par coco02 ] Bonjour,Je debute en programmation avec python depuis quelques jours.J'essaie de creer un petit programme simple pour controler l'efficacité d'une cli


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,465 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales