Кто-нибудь знает виджет для настольного инструментария (GTK, Qt, WX) для отображения карты штатов США? - PullRequest
1 голос
/ 22 сентября 2008

Я специально ищу тот, который позволяет мне отображать карту штатов США с каждым из них в качестве его собственного «объекта» в том смысле, что я могу контролировать цвет, при нажатии и при наведении мыши на каждый из них в отдельности. GTK - мое личное предпочтение, но на этом этапе я согласился бы на что угодно. Само приложение будет написано на Python, FWIW.

Ответы [ 6 ]

2 голосов
/ 22 сентября 2008

Вы можете использовать QGraphicsView в PyQt. Каждое состояние - это новый QGraphicsItem, который является либо растровым изображением, либо объектом пути. Вам просто нужно предоставить контуры (или растровые изображения) и позиции состояний.

Если у вас есть SVG из состояний, вы также можете их использовать.

Не существует общепринятого класса canvas для GTK +.

1 голос
/ 28 сентября 2008

Вы можете использовать Квантовая ГИС . QGIS - это географическая информационная система с открытым исходным кодом, использующая Qt Framework.

QGIS также может использоваться с Python. Вы можете расширить его с помощью плагинов, написанных на Python, или использовать привязки PyGIS Python для написания собственного приложения.

У них есть вики с хорошей информацией для разработчиков .

Возможно, QGIS слишком тяжел для вашей цели, но я все равно добавлю его сюда для завершения.

1 голос
/ 28 сентября 2008

Если вы подумаете о Qt, подумайте о добавлении зависимости kdelibs, тогда у вас будет мраморный виджет, который аккуратно обрабатывает карты.

Если вы придерживаетесь только Qt, тогда QGraphicsView - это фреймворк.

(примечание: kdelibs! = Работает весь рабочий стол kde)

0 голосов
/ 19 ноября 2008

Если вы рассматриваете Qt, рассмотрите также добавление зависимости kdelibs, тогда у вас будет мраморный виджет, который аккуратно обрабатывает карты.

Спасибо за рекламу Мрамор. Но вы ошибаетесь:

Мраморный виджет вообще не зависит от kdelibs. Это зависит только от Qt (> = 4.3).

Кроме того, Мрамор также только что получил привязки Python.

Я думаю, что данную проблему можно решить с помощью мрамора. Просто займет несколько дней работы на макс. Если у вас есть вопросы по поводу мрамора, не стесняйтесь спрашивать нас в нашем списке рассылки или IRC.

0 голосов
/ 23 сентября 2008

Быстрый совет: если вы по-разному окрашиваете каждое состояние, вы можете определить, какое из них выбрать из цвета под курсором мыши, а не выполнять сложную точку в процедуре многоугольника.

0 голосов
/ 22 сентября 2008

Да, вы можете использовать Каир, но Каир это не холст. Вы должны сами кодировать поведение, например, при наведении курсора мыши.

...