# Tkinter librairie python compatible MAC ?



## frankladen (4 Février 2011)

Bonjour ! 

J'ai comme projet pour mon cours de gestion de projet de faire un jeu de redsquare :
http://kabubble.com/ga_red_square.htm

le professeur nous donné un code sur lequel se basé pour faire le reste de notre projet.


```
# -*- coding: iso-8859-1 -*-
from Tkinter import *

import math
import random

class Helper(object):
    """ cette classe est utilisé de facon statique sans creer d'objet"""
    def getAngledPoint(angle,longueur,cx,cy):
        """ angle est en radians"""
        x = (math.cos(angle)*longueur)+cx
        y = (math.sin(angle)*longueur)+cy
        return (x,y)
    getAngledPoint = staticmethod(getAngledPoint)
    
    def calcAngle(x1,y1,x2,y2):
         dx = x2-x1
         dy = y2-y1
         angle = (math.atan2(dy,dx) )
         return angle
    calcAngle = staticmethod(calcAngle)
    
    def calcDistance(x1,y1,x2,y2):
         dx = abs(x2-x1)**2
         dy = abs(y2-y1)**2
         distance=math.sqrt(dx+dy)
         return distance
    calcDistance = staticmethod(calcDistance)
    
# MODELE
class Carrerouge():
    def __init__(self,parent):
        self.parent=parent
        self.pos=[self.parent.taille/2,self.parent.taille/2]
class Bloqueur():
    def __init__(self,pos):
        self.pos=pos
        
class AiredejeuCarre():
    def __init__(self,taille):
        x=taille/10
        self.pos1=[x,x]
        self.pos2=[taille-x,taille-x]
        
class AiredejeuBloqueur():
    def __init__(self,taille):
        self.taille=[taille,taille]
        
class Partie():
    def __init__(self,parent,taille=100,nbrbloqueurs=4):
        self.parent=parent
        self.taille=taille
        self.carre=Carrerouge(self)
        self.bloqueurs=[]
        self.airedejeuCarre=AiredejeuCarre(self.taille)
        self.airedejeuBloqueurs=AiredejeuBloqueur(self.taille)
        self.debut=0
        self.nbrBloqueurs=nbrbloqueurs
        self.creeBloqueurs()
        
    def avertiClic(self,x,y):
        self.carre.pos=[x,y]
        
    def creeBloqueurs(self):
        d=360/self.nbrBloqueurs
        deplace=36
        posx=self.carre.pos[0]
        posy=self.carre.pos[1]
        for i in range(self.nbrBloqueurs):
            x,y=Helper.getAngledPoint(math.radians((d*i)+deplace), 100, posx, posy)
            print x,y
            self.bloqueurs.append(Bloqueur((x,y)))
#CONTROLEUR
class Controleur():
    def __init__(self):
        self.partie=Partie(self,400)
        self.vue=Vue(self,400)
        self.vue.dessinePartie(self.partie)
        self.vue.root.mainloop() 
           
    def avertiClic(self,x,y):
        self.partie.avertiClic(x,y)
        self.vue.dessinePartie(self.partie)

# VUE    
class Vue:
    def __init__(self,parent,taille=400):
        self.parent=parent
        self.root=Tk()
        self.taille=taille
        self.airedejeu=Canvas(self.root,width=taille,height=taille,bg="black")
        self.airedejeu.bind("<Button>",self.avertiClic)
        self.msg=Label(self.root,text="Rien à dire")
        self.msg.pack()
        self.airedejeu.pack()
        
    def avertiClic(self,eve):
        self.parent.avertiClic(eve.x,eve.y)
        
    def dessinePartie(self,partie):
        x=self.taille/10
        fract=x/2
        self.airedejeu.create_rectangle(partie.airedejeuCarre.pos1[0],
                                        partie.airedejeuCarre.pos1[1],
                                        partie.airedejeuCarre.pos2[0],
                                        partie.airedejeuCarre.pos2[1],
                                        fill="white",tags=("aire",))
        
        
        self.airedejeu.create_rectangle(partie.carre.pos[0]-fract,
                                        partie.carre.pos[1]-fract,
                                        partie.carre.pos[0]+fract,
                                        partie.carre.pos[1]+fract,
                                        fill="red",tags=("carre",))
        
        for i in partie.bloqueurs:
            self.airedejeu.create_rectangle(i.pos[0]-fract,
                                            i.pos[1]-fract,
                                            i.pos[0]+fract,
                                            i.pos[1]+fract,
                                            fill="blue",tags=("bloc",))
        
# MAIN
if __name__ == '__main__':
    controleur=Controleur()
    print "FIN"
```

Ce code, exécuté sous windows avec éclipse avec l'extension pydev d'installé et utilisant l'interpreteur python 2.6 affiche un carré rouge avec 4 carré bleus.

Sur mac os, sous eclipse, avec ce même pydev d'installé et la même version de python,
je ne vois qu'une fenêtre blanche avec un minuscule carré noir...

Je crois que le problème viens de la librairie graphique TKinter...

quelqu'un aurait-il une idée de la source du problème ?

PS. (Je dois le remettre mardi, donc le 8 février.)


MERCI !


----------



## frankladen (6 Février 2011)

up !!!!!!


----------



## tatouille (9 Février 2011)

frankladen a dit:


> up !!!!!!



# -*- coding: utf8 -*-

si il n'y avait pas de franglish je t'aurais aidé


----------



## frankladen (11 Février 2011)

Cette ligne de code à été écrite par mon professeur...  Svp j'ai vraiment besoin d'aide


----------

