5

我正在做一个关于将遗留 GUI 程序从 Motif 迁移到 Gtk 的项目。源代码很长(大约 80k 行)。现在我有两个计划:

  1. 只需找到Motif函数和Gtk的对应关系。然后编写一些脚本来自动执行此转换。当然,这不可能是 100% 自动完成的,需要人工操作。
  2. 从源代码回到 GUI 程序的架构。构建一个树状结构,然后根据该结构使用 Gtk 重新构建程序。

请给我一些关于这两个计划的建议。任何想法或想法也受到热烈欢迎。

4

2 回答 2

0

我记得在大学的时候,我有一个任务是从 MOTIF 程序(自动)转换到 X 框架 xview。我在这项任务中迷失了方向,并进行了彻底的重建。

祝你好运

于 2012-04-27T09:24:24.263 回答
0

我不知道主题,但你的解决方案 1 对我来说听起来是个非常糟糕的主意。工具包有一些特定的功能,只是不可互换。否则,您将很容易拥有与软件不同的前端,但事实并非如此,因为这需要大量的工作。

我不太了解您的解决方案 2,尤其是树状结构。它是一个图表,可以查看何时出现哪些屏幕?这将是一个好主意。截取当前屏幕的屏幕截图,将它们合并成一个带有箭头的大图像,说明哪些操作会导致哪个屏幕对您有所帮助。

然后,您需要查看 GUI 逻辑是否在您的程序中明确分开,是否全部绑定。如果它是绑定的,那么您将有很多工作,这很可能是在 GTK 中完全重新实现您的程序!

但是不要忘记您可以使用Glade来设计 GTK GUI,这将为您节省大量的 GUI 创建代码行。

由于您的应用程序是 80k LOC,我认为这是一个大项目,可能需要几个月才能实现。您将需要创建 GTK 应用程序骨架,然后复制/粘贴程序的内部逻辑。开始逐屏重新实现,这样您就可以看到真正的改进。如果你试图一次完成所有工作,你最终会因没有看到任何进展而灰心。

所有这些都是个人方法,这就是我的做法。其他人可能会找到更好的迁移计划。

您可以通过在gtk-app-devel-list 邮件列表中搜索来找到更多建议(类似的问题已经被问过,比如这个)。

于 2012-04-27T09:43:05.317 回答