2015-03-14 4 views
0

Je travaille sur un jeu où je veux que l'image du gagnant augmente sa largeur dans une animation afin qu'elle remplisse l'image entière à la fin. J'ai déjà le code suivant pour travailler, mais j'en ai besoin pour d'autres images et je ne veux pas créer une variable de largeur pour chaque image. Au lieu de cela je voudrais récupérer sa valeur ipadx directement et aussi le changer de cette façon.Comment récupérer et modifier la valeur d'un attribut du gestionnaire de géométrie du pack?

après que le joueur X gagne, je mis la variable anim-1, et l'animation est exécuté:

# Create Player Info Window: 
playerinfowindow=Frame(root, bg='black') 
playerinfowindow.pack(side=TOP, fill='both', ipady=3) 

playerX=Button(playerinfowindow, bd=0, bg=player[0].color) 
iconX=PhotoImage(file='playerX.png') 
playerX.config(image=iconX) 

width = 84 
anim = 0 

def px(): 
    global width 
    global anim 
    if width < 252: 
     width += anim  
    playerX.pack(side=LEFT, ipadx=width) 
    playerX.after(10, px) 

px() 

Je veux changer la fonction px() à quelque chose comme ceci:

def px(): 
    global anim 
    if playerX['ipadx'] < 252: 
     playerX['ipadx'] += anim  
    playerX.pack(side=LEFT, ipadx=84) 
    playerX.after(10, px) 

Répondre

0

pack_info vous donnera cette information.

+0

Et si vous voulez changer les options utilisées lors du tassement du widget? Par exemple, vous l'avez rempli 'fill =" both "' et maintenant vous voulez simplement 'fill =" x "' .. Pouvons-nous utiliser [pack_configure] (http://effbot.org/tkinterbook/pack.htm#Tkinter. Pack.pack_configure-method)? Sur effbot, il est dit que c'est la même chose que 'pack', mais pourquoi il y a 2 méthodes qui font la même chose? – nbro