C++ 用于制作地图编辑器的语言/GUI库

C++ 用于制作地图编辑器的语言/GUI库,c++,python,perl,user-interface,lua,C++,Python,Perl,User Interface,Lua,我正在为我开发的应用程序设计一个跨平台地图编辑器,我不确定在选择语言/gui库时应该采取什么方法。只是为了获得一些基本信息,编辑器需要解析和输出xml文件 我最喜欢C++、Lua和Perl,但我也愿意使用Python(可以使用这个练习)。为了提高效率,我更喜欢使用脚本语言 感谢您的推荐 我还希望支持填写表格等 另外,我已经测试过扩展现有的地图编辑器,但这并不值得,因为它们没有提供我所需要的基本功能,需要我重新编写整个东西。我的首选始终是和Perl 5,但这种组合在Linux上效果最好。你将在什么

我正在为我开发的应用程序设计一个跨平台地图编辑器,我不确定在选择语言/gui库时应该采取什么方法。只是为了获得一些基本信息,编辑器需要解析和输出xml文件

<>我最喜欢C++、Lua和Perl,但我也愿意使用Python(可以使用这个练习)。为了提高效率,我更喜欢使用脚本语言

感谢您的推荐

我还希望支持填写表格等

另外,我已经测试过扩展现有的地图编辑器,但这并不值得,因为它们没有提供我所需要的基本功能,需要我重新编写整个东西。

我的首选始终是和Perl 5,但这种组合在Linux上效果最好。你将在什么操作系统下运行

下面是一个使用Gtk2的Perl 5脚本示例:

#!/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;

我可以推荐使用Python和PyQt来完成这项工作。Qt提供了一个称为QGraphicscene的场景管理类(即分层对象放置、缩放、命中测试、事件、坐标变换等,甚至碰撞检测),以及一个用于显示所有场景的匹配控件,称为QGraphicsView。它还支持拖放,从而支持交互式对象放置


使用这些类实现贴图实际上只是创建QGraphicItems(矩形、多边形等)并将它们添加到场景中,其余的由Qt完成。通过阅读文档,尤其是文档“”,您可以了解这一切是如何结合在一起的。最近,我不得不为一个客户机实现类似的东西,并且对这种方法非常满意。

基于Lua,我推荐使用GUI。它是轻量级的,可移植到linux和Windows,并且与Lua很好地集成。对于那些喜欢Gtk的人,IUP包含Gtk的驱动程序,因此原则上它可以移植到Gtk可以移植的任何系统

另一个可能的选择是,它也有一个将其与Lua集成的包装器


IUP和wxWidgets都包含在捆绑包中。

只是为了完整—您也可以使用Qt和Lua,使用。它也适用于图形视图框架,我经常使用它——我使用Lqt创建了一个可视化语言+编辑器,所以它可以通过这种方式使用。但是,请注意,Lqt仍在进行中。