Necesito crear una GUI para la construcción de gráficos ("gráfico" como una representación abstracta de un conjunto de objetos, no una representación visual de datos). La interfaz proporcionará una selección de ~ 5 tipos de vértices y ~ 5 tipos de borde. Cada vértice tendrá dos campos de datos: una etiqueta de texto y un nombre de archivo, que deben ser fácilmente editables.

Estoy familiarizado con igraph y tiene mucho código escrito en él. Usaré igraph para manipular los gráficos creados con esta GUI.

Dado que esta será mi primera GUI, soy completamente ignorante de las herramientas disponibles. ¿Puede sugerir una biblioteca gratuita, sabiendo que eventualmente el programa tendrá que funcionar en Windows?

EDITAR

Por las respuestas que recibo parece que no estaba lo suficientemente claro. No busco una forma de visualizar un gráfico, sino una forma de visualmente crear uno. Por visual, me refiero a que no necesito crear manualmente archivos de texto o escribir código.

3
Boris Gorelik 25 jul. 2011 a las 10:46

3 respuestas

La mejor respuesta

Si usa Python, creo que PyQt es una buena selección. Lo que debe instalar se enumera a continuación:

  1. instale Python desde aquí
  2. instale PyQt4 desde aquí

Pero se necesitan muchas líneas para escribir la aplicación GUI, a veces es mejor generar una imagen para mostrar con el visor de imágenes.

0
kamae 25 jul. 2011 a las 06:59

Me gusta networkx,

from networkx import draw, Graph
from pylab import show

g = Graph()
g.add_edges_from([(1,2),(1,3),(2,4),(2,5)])
draw(g)
show()

Lo que da,

enter image description here

La única peculiaridad es el requisito para que matplotlib consiga que el trazado integrado funcione.

3
lafras 25 jul. 2011 a las 10:05

Eche un vistazo a xdot.py.

Desde la página de inicio

xdot.py es un visor interactivo para gráficos escritos en el lenguaje de puntos de Graphviz.

Utiliza internamente el formato de salida xdot de graphviz como formato intermedio, y PyGTK y Cairo para el renderizado.

xdot.py se puede usar como una aplicación independiente desde la línea de comandos o como una biblioteca integrada en su aplicación python.

3
midtiby 25 jul. 2011 a las 07:11