4

在我们的生物信息学实验室,我们最近被要求为用 C 编写(和优化)的程序创建一个 GUI。我们设计的任何 GUI 都需要能够向 C 程序提供输入并接收来自 C 程序的输出,同时也很容易可移植到 Windows 和 Mac。有什么方法可以做到这一点?

4

7 回答 7

3

如果您正在寻找适用于 C 语言的 windows/mac 的 GUI 工具包,您考虑过GTK吗?

于 2009-08-06T20:49:06.320 回答
3

下载QTwxWidgets

当有人已经拥有并将让您免费使用它时,为什么还要努力工作?顺便说一句,我自己更喜欢 QT。

编辑:这确实意味着使用 C++,但它可以完美地与 C 代码一起使用。

于 2009-08-06T20:49:47.457 回答
2

使用单独的程序。

它不会破坏现有代码 - 如果代码具有程序员可能不知道/理解/测试的生物知识,则尤其重要。

Gui 经常变化,几年后你将重写 NewSuperOsToolkit(tm) 的 gui,但底层工作代码不会改变。我们有大气建模代码,我确信它最初是用拉丁文编写的。

您保留了将引擎代码作为批处理、在云中的 MPI 上并行运行的能力,以及一系列您没有想到的其他方式。

于 2009-08-06T20:55:34.043 回答
1

您可以用 Java 编写前端 GUI,并让它们提供输入并从您的 C 程序接收输出。我认识几个在这里工作的小组,他们用 C# 和 C 代码做类似的事情(但他们没有多平台限制)。

这样您就不必使用 C 工具包创建 GUI。

于 2009-08-06T20:49:12.450 回答
0

有许多带有语言的脚本可以使这变得容易。我会选择 tcl/tk,它几乎可以在 mac 上开箱即用,并且几乎可以跨平台跨任何你能想到的机器。

GTK 也很棒,许多脚本语言都有它的绑定。

如果你不需要的话,你可能不想用 c 写你的 gui。使用快速开发的脚本语言。

于 2009-08-06T20:51:55.377 回答
0

根据程序的性质,您可以创建一个完全独立的 GUI 应用程序(使用您喜欢的任何语言),并从中分叉/执行现有程序,将其标准输入和标准输出重定向到您的 GUI 程序。根据现有程序的工作方式,这可能运行良好,也可能非常麻烦。

您还可以使用 GTK(具有 C API)之类的 GUI 代码扩展现有程序,或者您可以使用 Qt(它是 C++,但如果您将它们定义为“extern”,从 C++ 调用 C 函数通常没有问题C”')。

于 2009-08-06T20:49:13.557 回答
0

如果你想要一个原生的 GUI,那么使用 wxWidgets 或 QT。(我使用 wxWidgets ...)

另一种方法是拥有一个使用 Javascript 和 CSS 的基于 HTML 的界面。您完全避免使用 GUI 库,获得跨平台支持,结果在某些方面更好,在其他方面更差。

如果你真的想要一个独立的用户界面,你可以用 WebKit 之类的东西将它集成到一个二进制文件中。

于 2009-08-06T21:00:03.613 回答