【问题标题】:Language/GUI library to make map editor用于制作地图编辑器的语言/GUI 库
【发布时间】:2010-09-04 23:49:27
【问题描述】:

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

我最喜欢使用 C++、Lua 和 Perl,但我也愿意使用 Python(可以使用实践)。为了提高工作效率,我更喜欢使用脚本语言。

感谢任何建议,谢谢。

我也想支持填写表格等。

附:我已经测试了扩展现有的地图编辑器,但这并不值得,因为它们没有提供我在基本层面上需要的功能,无论如何我都需要重新编写整个东西。

【问题讨论】:

    标签: c++ python perl user-interface lua


    【解决方案1】:

    我的偏好始终是Gtk2 和 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;
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 只是为了完整 - 你也可以使用 Qt 和 Lua,使用 Lqt。它也适用于 Graphics View 框架,并且我经常使用它——我使用 Lqt 创建了一个可视化语言 + 编辑器,因此它可以通过这种方式使用。但是,请注意 Lqt 仍在进行中。
      【解决方案3】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-02-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-02-20
        相关资源
        最近更新 更多