Библиотека языка / GUI для создания редактора карт - PullRequest
7 голосов
/ 05 сентября 2010

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

Мне удобнее всего работать с C ++, Lua и Perl, но я также хотел бы использовать Python (мог бы использовать практику).Я бы предпочел делать это на языке сценариев для повышения производительности.

Любые рекомендации приветствуются, спасибо.

Мне также нужна поддержка для заполнения форм и т. Д.

PS Я протестировал расширение существующих редакторов карт, но оно того не стоит, так как они не обеспечивают нужную мне функциональность на фундаментальном уровне, требуя от меня переписать все это в любом случае.

Ответы [ 3 ]

4 голосов
/ 05 сентября 2010

Мои предпочтения всегда Gtk2 и Perl 5, но эта комбинация лучше всего работает в Linux.Под какой ОС вы собираетесь работать?

Вот пример сценария Perl 5 с использованием Gtk2:

#!/usr/bin/perl

use strict;
use warnings;

use Gtk2;

Gtk2->init;

my $window = Gtk2::Window->new;
my $vbox   = Gtk2::VBox->new;
my $label  = Gtk2::Label->new("click the button");
my $button = Gtk2::Button->new("click me");

my $i;
$window->signal_connect(destroy => sub { Gtk2->main_quit });
$button->signal_connect(clicked => sub { $label->set_text(++$i) });

$window->add($vbox);
$vbox->add($label);
$vbox->add($button);

$window->show_all;

Gtk2->main;
2 голосов
/ 05 сентября 2010

Основываясь на Lua, я бы порекомендовал IUP для GUI.Он легкий, переносимый на Linux и Windows, и хорошо интегрирован с Lua.Для тех, кто любит Gtk, IUP включает в себя драйвер для Gtk, так что он в принципе может быть перенесен на любую систему, где Gtk может портировать.

Другой возможный выбор - wxWidgets , который также имеет оболочкуинтеграция с Lua.

И IUP, и wxWidgets включены в комплект Lua для Windows .

2 голосов
/ 05 сентября 2010

Я могу рекомендовать использовать Python и PyQt для этой работы. Qt предлагает класс для управления сценой (то есть размещение слоистых объектов, масштабирование, тестирование попаданий, события, преобразования координат и т. Д., Даже обнаружение столкновений), называемый QGraphicsScene, и соответствующий элемент управления для отображения всего этого, называемый QGraphicsView. Он также предлагает поддержку перетаскивания, что позволяет интерактивное размещение объектов.

Реализация карты с использованием этих классов - это просто создание QGraphicItems (прямоугольники, многоугольники и т. Д.) И добавление их в сцену, Qt сделает все остальное. Вы можете посмотреть, как все это сочетается, читая документацию, особенно документ " The Graphics View Framework ". Недавно мне пришлось реализовать нечто подобное для клиента, и я был очень доволен этим подходом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...