2010-02-24 5 views
2

Je dois dessiner un graphique d'éléments composant un modèle topologique d'un réseau physique. Il y aurait des nœuds et des arcs, et ce dernier pourrait être unidirectionnel ou bidirectionnel. Je souhaite capturer les événements de clic pour les nœuds et les arcs (pour sélectionner l'élément et afficher ses propriétés quelque part), et les événements de glissement pour les nœuds (pour les déplacer) et les arcs (pour connecter ou déconnecter éléments).Meilleure toile pour dessiner dans wxPython?

J'ai fait quelques recherches et j'ai réduit les alternatives à OGL (Object Graphics Library) et FloatCanvas. Je ne voudrais pas descendre au DrawingContext, mais il n'est pas rejeté si nécessaire.

Quelle option de toile choisiriez-vous?

+1

J'ai roulé le mien. Malheureusement, c'était pour le travail, donc je ne peux pas partager le code. http://www.michaelfogleman.com/2009/01/work-project-generic-diagram-widget/ Il semble en fait encore plus agréable maintenant, avec des dégradés. – FogleBird

Répondre

3

J'ai essayé FloatCanvas, bien qu'il y ait eu beaucoup de travail pour que tout fonctionne. J'ai réussi à traverser des choses comme la connectivité, le mouvement, la reconnexion automatique en cas de mouvement, etc.

FloatCanvas est également très agréable en termes de performances et de résultats visuels. Anti-aliasing (1) (2) est également possible de les améliorer si nécessaire.

2

Il semble que OGL n'est pas mis à jour, et en général FloatCanvas semble plus moderne. Je ne connais pas vraiment assez les deux options.

Il semble que la capture d'événement soit plus facile avec FloatCanvas. Je voudrais essayer de l'utiliser avant OGL.

+2

Une question connexe semble donner plus de points pour FloatCanvas: http://stackoverflow.com/questions/824628/wxpython-ogl-package-drag-event – AnotherOne

+2

Ni OGL ni FloatCanvas ne semblent être activement mis à jour. Mis à part quelques corrections de bugs, aucun d'entre eux n'a eu de commits importants depuis quelques années. http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/FloatCanvas/ http://svn.wxwidgets.org/viewvc/wx/wxPython/trunk/wx/lib/ogl/ – k107

Questions connexes