创建一个在Linux和Windows上包装命令行程序的GUI应用程序

时间:2008-12-02 23:52:33

标签: user-interface process

我正在编写一个GUI应用程序,让用户可以与命令行程序进行交互。在这种情况下,程序是晶体学程序。他们需要很长时间才能运行。

使用命令行程序有一个共同的工作流程。通常处理一个程序的输出,然后由其他程序使用。用户需要能够填写各种文本框并选择发送到命令行程序的选项。

由于我很懒,并且不想做比我需要做更多的工作,有什么工具可以帮助我做到这一点?该软件最初需要在Linux上运行,但在某些时候也可以在Windows上运行。

如果非程序员有某种DSL能够扩展/修改GUI应用程序(添加新程序和更改选项等),那么也会很整洁。

4 个答案:

答案 0 :(得分:2)

看看GTK Server它可以从任何语言轻松编写脚本,因为它作为服务运行(有点像浏览器),它可以跨系统使用。也就是说,运行命令行的系统可以在强大的系统上运行,而GTK服务器在用户的台式PC上运行。这些示例很容易理解,版本和语言的矩阵必然包含在您的内容中。如果你运气不好,只需选择最接近的组合作为例子。

答案 1 :(得分:1)

我建议您查看Galaxy门户网站。它基本上是一个基于Web的GUI,用于命令行生物信息学工具(但对于任何命令行应用程序同样适用),内置工作流功能,因此应该具有您正在寻找的内容。

通过遵循Galaxy的工具配置格式,添加自己的包装器应该相当容易。有关如何执行此操作,请参阅this page

答案 2 :(得分:0)

TCL / TK是传统方式 今天我将使用python与wxPython(更完整)或FLTK(更简单)。

如果您不需要从命令行程序中回读结果,则更容易 -
例如os.system(“命令选项”)

答案 3 :(得分:-2)

您可以使用WShell并重定向stdin stdout。

object console = WShell.Exec(cmdLine);
if (console.StdOut.AtEndOfStream)
    s = Pipe.StdOut.ReadLine();

请注意,您仍然需要弄清楚如何使用控制台窗口。但这很容易。您需要按窗口标题查找此窗口并将其属性设置为ivisible。或者使用免费软件来自互联网的一些实用工具,它可以自动为您完成。

相关问题