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

User interface 创建在Linux和Windows上包装命令行程序的GUI应用程序,user-interface,process,User Interface,Process,我正在编写一个GUI应用程序,它将允许用户与命令行程序交互。在这种情况下,这些程序是结晶学程序。它们需要很长时间才能运行 有一种使用命令行程序的通用工作流。一个程序的输出通常经过处理,然后供其他程序使用。用户需要能够填写各种文本框并选择发送到命令行程序的选项 由于我很懒,不想做比我需要的更多的工作,有什么工具可以帮助我做到这一点?该软件最初需要在Linux上运行,但在某些情况下也可以在Windows上运行 如果有某种DSL供非程序员扩展/修改GUI应用程序(以添加新程序和更改选项等),也会很好。

我正在编写一个GUI应用程序,它将允许用户与命令行程序交互。在这种情况下,这些程序是结晶学程序。它们需要很长时间才能运行

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

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


如果有某种DSL供非程序员扩展/修改GUI应用程序(以添加新程序和更改选项等),也会很好。

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

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

缺点是,您仍然需要弄清楚如何关闭控制台窗口。但这很容易。您需要按窗口标题查找此窗口,并将其属性设置为ivible。或者使用免费软件或互联网上的一些实用工具,这些工具可以自动为您完成任务。

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

如果您不需要从命令行程序读回结果,那么就容易多了-

例如os.system(“命令选项”)

看看它很容易从任何语言编写脚本,而且由于它作为服务运行(有点像浏览器),所以可以跨系统使用。也就是说,运行命令行的系统可以在功能强大的系统上运行,GTK服务器可以在用户的桌面PC上运行。示例很容易理解,版本和语言的矩阵一定包括您的。如果你运气不好,就选择最接近的组合作为例子。

我建议你看看门户网站。它基本上是一个基于web的GUI到命令行生物信息学工具(但对任何命令行应用程序都同样有效),内置了工作流功能,因此应该完全符合您的要求

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

可能有兴趣:另请参见
zenity
CLI程序和Gumbie: