2009-09-24 7 views
1

Je cherche une toile très simple pour python. Ce dont j'ai vraiment besoin, c'est de pouvoir tracer des lignes et des cercles, de les déplacer/de m'en débarrasser et de faire défiler la toile (donc, je dessine idéalement sur une toile infinie, et je la fais défiler). Idéalement, le code ressemblerait à ceci:Suggestions de canvas Python

c = Canvas() 
l1 = c.line((x0, y0), (x1, y1)) 
l2 = c.line((x2, y2), (x3, y3)) 
c1 = c.circle(((x0 + x1 + x2 + x3)/4, (y0 + y1 + y2 + y3)/4), 10) 
c1.delete() 
l1.move(5, 10) 
c.scroll(5, 5) 

C'est juste un code de rêve, je suis très bien avec une boilerplate minimale, mais je ne ai pas vraiment besoin de rien de fantaisie, sans doute la seule fonctionnalité que je voudrais vraiment serais la possibilité d'intégrer dans une certaine interface graphique qui semble bien sur Windows (qui exclut Tkinter) et n'est pas extrêmement lourd (cela pourrait exclure GTK/Cairo).

Ceci est dans Python 2.6. Je serais heureux de donner toute autre information

Répondre

1

je me suis retrouvé à l'aide WxPython avec le FloatCanvas intégré. Je ne le conseillerais pas vraiment pour quelqu'un d'autre, cependant; cela dépend de NumPy, qui est une très grande installation, et est presque totalement non documenté (lire les sources était une grande partie de l'application que j'ai programmée). Il est, cependant, très agréable et fait beaucoup pour vous.

WxWiki: http://wiki.wxpython.org/FloatCanvas

Docs: http://www.wxpython.org/docs/api/wx.lib.floatcanvas-module.html

Devel: http://trac.paulmcnett.com/floatcanvas

0

Je l'ai utilisé PyGame avec beaucoup de succès pour ces choses:

http://www.pygame.org/

+0

Je l'ai regardé PyGame et il semble bien, mais comment puis-je déplacer une surface autour? Je ne veux pas redessiner manuellement des centaines de lignes chaque fois que la surface se déplace. Aussi, est-il possible de supprimer un cercle ou des lignes une fois que vous l'avez peint? – pavpanchekha

+0

J'ai créé un ensemble d '"objets". Chaque "objet" (que ce soit une fusée, un missile ou une étoile) avait une méthode pour se dessiner. Alors il est simple de dessiner seulement ce qui est dans la région visible. Chaque image, je voudrais dessiner sur une région, puis l'échanger dans l'affichage visible. Il n'y a aucun scintillement et vous contrôlez à 100%. C'est peut-être un peu plus complexe que ce que vous cherchez. – gahooa