2010-09-04 8 views
7

Estoy diseñando un editor de mapas multiplataforma para una aplicación que he desarrollado, y no estoy seguro de qué enfoque tomar con respecto a la elección de biblioteca de idioma/gui. Solo para obtener información básica, el editor debe analizar y generar archivos xml.Biblioteca de idioma/GUI para hacer el editor de mapas

Me siento más cómodo con C++, Lua y Perl, pero también estaría dispuesto a usar Python (podría usar la práctica). Prefiero hacerlo en un lenguaje de scripting para la productividad.

Cualquier recomendación es apreciada, gracias.

También me gustaría soporte para el llenado de formularios, etc.

P. S. He probado la extensión de los editores de mapas existentes, pero en realidad no vale la pena, ya que no proporcionan la funcionalidad que necesito en un nivel fundamental, lo que me obliga a volver a escribir todo de todos modos.

Respuesta

2

puedo recomendar el uso de Python y PyQt para el trabajo. Qt ofrece una clase para la gestión de escenas (es decir, colocación de objetos en capas, zoom, pruebas de impacto, eventos, transformaciones de coordenadas, etc., incluso detección de colisiones) llamada QGraphicsScene y un control de coincidencia para mostrarlo todo, llamado QGraphicsView. También ofrece soporte para drag drop &, lo que permite la colocación de objetos interactivos.

La implementación de un mapa utilizando estas clases realmente solo está creando elementos QGraphic (Rectángulos, Polígonos, etc.) y agregándolos a la escena, Qt hace el resto. Puede ver cómo encaja todo al leer la documentación, especialmente el documento "The Graphics View Framework". Tuve que implementar algo similar para un cliente recientemente y estaba muy satisfecho con este enfoque.

+0

Para completar, puede usar Qt también con Lua, usando [Lqt] (http://code.google.com/p/lqt/). También funciona con el marco de Graphics View, y lo usé mucho: creé un editor de lenguaje visual + usando Lqt, por lo que se puede usar de esta manera. Sin embargo, tenga en cuenta que Lqt todavía está en progreso. –

4

Mi preferencia siempre es Gtk2 y Perl 5, pero esa combinación funciona mejor en Linux. ¿Con qué sistema operativo vas a correr?

Aquí se muestra un ejemplo de Perl 5 script utilizando 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

Construyendo en la base de Lua, recomendaría IUP para la GUI. Es liviano, portátil para Linux y Windows, y está bien integrado con Lua. Para aquellos a los que les gusta Gtk, IUP incluye un controlador para Gtk por lo que, en principio, puede ser portado a cualquier sistema en el que Gtk pueda conectarse.

Otra opción plausible es wxWidgets, que también tiene una envoltura que lo integra con Lua.

Tanto IUP como wxWidgets están incluidos en el paquete Lua for Windows.

Cuestiones relacionadas