2010-09-04 29 views
7

我正在爲我開發的應用程序設計一個跨平臺地圖編輯器,並且我不確定在語言/ gui庫選擇方面採取了哪些方法。只是爲了一些基本信息,編輯器需要解析和輸出xml文件。我最喜歡C++,Lua和Perl,但我也願意使用Python(可以使用練習)。我更喜歡用腳本語言來提高生產力。製作地圖編輯器的語言/ GUI庫

任何建議表示讚賞,謝謝。

我也想支持填寫表格等。

P.S.我已經測試過擴展現有的地圖編輯器,但它並不是真的值得,因爲它們沒有提供我在基本級別上需要的功能,無論如何我只需要重新編寫整個東西。

回答

2

我可以推薦使用Python和PyQt的作業。 Qt爲QGraphicsScene提供了一個用於場景管理的類(即分層對象放置,縮放,命中測試,事件,座標轉換等,甚至是碰撞檢測)以及一個稱爲QGraphicsView的匹配控件。它還提供對拖放的支持,從而實現交互式對象放置。使用這些類實現一個map實際上只是創建QGraphicItems(矩形,多邊形等)並將它們添加到場景中,其餘部分由Qt完成。你可以看看它們是如何適合閱讀文檔的,特別是文檔「The Graphics View Framework」。我最近不得不爲客戶實施類似的服務,並對這種方法非常滿意。

+0

只需完成 - 您可以使用Qt與Lua,使用[Lqt](http://code.google.com/p/lqt/)。它也適用於Graphics View框架,並且我使用了很多 - 我使用Lqt創建了一個可視化語言+編輯器,因此它可用於這種方式。但是請注意,Lqt仍在進行中。 – 2010-09-05 07:09:59

4

我的首選項總是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

建立在Lua的基礎上,我會爲GUI推薦IUP。它輕量級,可移植到Linux和Windows,並與Lua完美集成。對於那些喜歡Gtk的人來說,IUP包含一個用於Gtk的驅動程序,所以它原則上可以移植到Gtk可以移植的任何系統。

另一個合理的選擇是wxWidgets,它也有一個包裝與Lua整合。

IUP和wxWidgets都包含在Lua for Windows包中。