【问题标题】:A GUI Question: Dynamic Modular Panel Layout?一个 GUI 问题:动态模块化面板布局?
【发布时间】:2011-11-14 04:20:11
【问题描述】:

我是一名在大学工程项目团队工作的学生。

我们的软件小组正在寻求创建一个模块化 GUI,该 GUI 允许通过捕捉面板进行实时重新配置,用户可以随意移动和脱离 GUI(具有这种类型 GUI 的流行程序:Adobe Production Studio、Eclipse、Visual工作室,大多数主要的“设计”程序)。

谁能推荐一个开发这种 GUI 的框架?理想情况下,我们正在努力实现与主要 PC 平台(Linux、Mac、Windows)的兼容性。任何流行的语言都是可以接受的。

我浏览了 wxWidgets、GTK+ 和 Java Swing GUI 的示例。我确信可以使用其中任何一种来开发这样的 GUI,但是如果我们可以利用某种现有的框架或库,那将是更好的选择。任何提示/技巧将不胜感激。

谢谢。

【问题讨论】:

    标签: swing user-interface wxwidgets gtk panels


    【解决方案1】:

    在 Java Swing 中,有几个我过去使用过的开源库或多或少取得了成功:

    • flexdock: 旧库,非常强大,但使用和调整非常复杂(我认为设计文档不足)。项目很久以前就被放弃了,但是当你可以“掌握”它时,它会产生非常好的结果。今天不推荐(完全不支持)

    • mydoggy:良好的 API,易于使用(有据可查),但有点难以微调,特别是如果您使用第 3 方外观和感觉。也许这个后来的问题在最近的版本中已经消失了(我在一年多前尝试过 mydoggy)

    • docking frames:非常好的 API,易于设置,良好的文档,一些简单的教程,但缺乏“更深入”的示例。很好支持。今天我肯定会推荐去这个图书馆。请注意,该库提供 2 个 API 级别,“common”和“core”。我发现文档对于在什么情况下使用哪一个不是很清楚。我对两者都进行了测试,最后决定使用“通用”库,但今天无法解释为什么:-(

    另外还有几个Swing的商业对接库,大家可以特别查看JIDE,很有名的。

    【讨论】:

      【解决方案2】:

      在 wxWidgets 中有 wxAUI 库,它专为可停靠面板和工具栏而设计。 wxWidgets 安装的 samples/aui 文件夹中有相当丰富的示例。

      【讨论】:

        【解决方案3】:

        这是一个 .NET Winforms 库,但我们使用 Dock Panel Suite。它是开源的,效果很好。

        【讨论】:

          【解决方案4】:

          我不是专家,但是,听起来您在谈论“停靠”小部件(或控件或任何您想调用的 GUI 组件)。虽然许多主要的 GUI 播放器都做得很好,但我看到 Java 之外很少有跨平台做得很好的。如果对接对您的项目至关重要,您甚至可能希望在决定使用一个主要 GUI 工具包之前,先在每个主要 GUI 工具包中构建简单的小测试应用程序。

          wxWidgets 使用底层的原生库,至少据我所知,它没有对接库。

          GTK+ 有gdl(GNOME 对接库),但我认为它不能在 Windows 中工作。我经常使用它,它在 GNOME 中效果很好。

          Qt 有一个Dock Widget,但我不是 Qt 开发人员,所以我不能给你更多。

          Java/Swing 有很多对接库。你必须用谷歌搜索那个——太多了,我无法列出。我也不会做太多 Java。

          尽管我通常不喜欢 Java 应用程序,但如果 Java 确实需要在多个平台上一致地运行,它可能是您的最佳选择。

          【讨论】:

            【解决方案5】:

            很多 gui 工具包都具有该功能,我知道这是一个非常模糊的答案,但很大程度上取决于您对开发语言和目标平台的偏好,而您没有说明。此外,如果您通常没有很多开发 GUI 的经验,最好从更静态的东西开始,而不是可以动态重新配置的 gui。设计一个易于处理的动态 gui 需要做很多工作。

            我个人非常偏爱 Qt 和 c++。 Qt 支持 windows/mac os 和 linux 并且组织得非常好有大量的文档。

            【讨论】:

              猜你喜欢
              • 2010-11-14
              • 1970-01-01
              • 1970-01-01
              • 2018-07-03
              • 2011-11-18
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多