我是一名大学工程项目团队的学生。
我们的软件子团队正在寻求创建一个模块化的GUI,通过捕捉用户可以随意移动的面板并从GUI中分离实时重新配置(具有此类GUI的流行程序:Adobe Production Studio,Eclipse,Visual工作室,最主要的“设计”程序)。
有人可以建议开发这样一个GUI的框架吗?理想情况下,我们正在努力实现主要PC平台(Linux,Mac,Windows)的兼容性。任何流行语言都可以接受。
我查看了wxWidgets,GTK +和Java Swing GUI的示例。我确信可以用这些中的任何一个开发这样的GUI,但如果我们可以利用某种现有的框架或库,那将是更好的选择。任何提示/技巧都将不胜感激。
感谢。
答案 0 :(得分:4)
在wxWidgets中有wxAUI库,它专为可停靠的面板和工具栏而设计。 wxWidgets安装的samples / aui文件夹中有相当多的示例。
答案 1 :(得分:2)
我不是专家,但是,听起来你正在谈论“对接”小部件(或控件或任何你想称之为GUI组件的东西)。虽然许多主要的GUI玩家都做得很好,但我看到很少有人在Java之外做到这一点。如果对接对您的项目至关重要,您甚至可能希望在决定其中之前在每个主要的GUI工具包中构建简单的小测试应用程序。
wxWidgets使用底层的本机库,至少据我所知,它没有停靠库。
GTK +有gdl(GNOME停靠库),但我认为它不适用于Windows。我经常使用它,它在GNOME中运行得很好。
Qt有一个Dock Widget,但我不是Qt的开发者,所以我不能再给你了。
Java / Swing有很多对接库。你必须谷歌那个 - 我可以列出太多。我也不会做太多的Java。
尽管我通常不喜欢Java应用程序,但如果它真的需要在多个平台上一致地运行,那么Java可能是你最好的选择。
答案 2 :(得分:1)
在Java Swing中,有几个开源库在过去或多或少成功使用过:
flexdock:旧库,非常强大,但使用和调整非常复杂(在我看来,设计文档不够)。项目很久以前就已经过时了,但是当你能够“掌握”它时,它会给出非常好的结果。我今天不推荐它(根本没有支持)
mydoggy:良好的API,易于使用(文档齐全),但有点难以微调,特别是如果您使用第三方外观。也许这个后期的问题在最近的版本中已经消失了(我在一年多前尝试过mydoggy)
docking frames:非常好的API,易于设置,良好的文档,一些简单的教程,但缺乏“更深层次”的示例。很好的支持。今天我肯定会建议你去这个图书馆。请注意,该库提供了2个API级别,“通用”和“核心”。我发现文档在哪种情况下使用哪个文件并不是很明确。我测试了两个,最后决定选择“普通”库,但无法解释为什么今天: - (
此外,Swing还有几个商业对接库,你可以特别检查JIDE,这是众所周知的。
答案 3 :(得分:0)
很多gui工具包都有这个功能,我知道这是一个非常模糊的答案,但很多都归结为你在开发语言和目标平台上的偏好,你没有说明。此外,如果您在开发GUI方面没有很多经验,那么开始使用更静态的东西可能会更好,而不是可以动态重新配置的gui。设计一个易于操作的动态gui有很多工作要做。
我个人非常偏爱Qt和c ++。 Qt支持windows / mac os和linux,组织得很好,文档量也很大。
答案 4 :(得分:0)
这是一个.NET Winforms库,但我们使用Dock Panel Suite。它是开源的,效果很好。