2008-09-21 11 views
1

Je suis spécifiquement à la recherche d'un qui me permet d'afficher une carte des états américains avec chacun comme son propre "objet" dans le sens où je peux contrôler la couleur, sur le clic, et sur le mouseover de chacun individuellement. GTK est ma préférence personnelle, mais à ce stade, je me contenterais de tout. L'application elle-même sera écrite en Python, FWIW.Est-ce que quelqu'un connaît un widget pour une boîte à outils de bureau (GTK, Qt, WX) pour afficher une carte des états américains?

Répondre

2

Vous pouvez utiliser QGraphicsView dans PyQt. Chaque état est un nouveau QGraphicsItem, qui est un bitmap ou un objet path. Vous avez juste besoin de fournir les contours (ou les bitmaps) et les positions des états.

Si vous avez des SVG des états, vous pouvez aussi les utiliser.

Il n'y a pas de classe de canevas généralement acceptée pour GTK +.

-1

Oui, vous pouvez utiliser le caire, mais le caire n'est pas une toile. Vous devez coder un comportement comme mouseover/onclick vous-même.

0

Conseil rapide, si vous colorez chaque état différemment, vous pouvez identifier celui que vous voulez sélectionner dans la couleur sous le curseur de la souris plutôt que d'effectuer un point complexe dans la routine polygone.

1

Si vous considérez Qt, pensez aussi à jeter dans la dépendance de kdelibs, alors vous aurez un widget en marbre, qui gère les cartes de manière ordonnée.

Si vous vous en tenez seulement à Qt, alors QGraphicsView est un framework à utiliser.

(note: kdelibs = tout bureau kde en cours d'exécution)

1

Vous pouvez utiliser Quantum GIS. QGIS est un système d'information géographique Open Source utilisant le framework Qt. QGIS peut également être utilisé avec Python. Vous pouvez soit l'étendre avec des plugins écrits en Python ou utiliser le PyGIS Python bindings pour écrire votre propre application.

Ils ont un Wiki avec un bon informations for developers.

QGIS est peut-être trop lourd pour votre usage, mais je l'ai quand même ajouté pour finaliser.

0

Si vous considérez Qt, également envisager de lancer dans la dépendance kdelibs, alors vous aurez un widget de marbre, qui gère les cartes de manière ordonnée.

Merci pour la publicité Marble. Mais vous êtes incorrect:

Le widget Marble ne dépend pas du tout de kdelibs. Cela dépend seulement de Qt (> = 4.3).

En outre, Marble a également reçu des liaisons Python.

Je pense que le problème donné peut être résolu en utilisant Marble. Serait juste prendre quelques jours de travail à max. Si vous avez des questions à propos de Marble, n'hésitez pas à nous demander sur notre liste de diffusion ou IRC.

Cordialement, Torsten Rahn