用于大型C程序的GUI的方法

时间:2009-08-06 20:44:18

标签: c user-interface portability

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

7 个答案:

答案 0 :(得分:3)

如果您正在寻找适用于C语言的Windows / Mac的GUI工具包,您是否考虑过GTK

答案 1 :(得分:3)

下载QTwxWidgets

为什么有人已经拥有并且会让你免费使用它?我自己更喜欢QT,顺便说一句。

编辑:它确实意味着使用C ++,但它可以与C代码完美配合。

答案 2 :(得分:2)

使用单独的程序。

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

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

您可以批量运行引擎代码,在云中的MPI上并行运行引擎代码,以及其他一些您没有想过的方法。

答案 3 :(得分:1)

您可以用Java编写前端GUI,并让它们输入输入并从C程序接收输出。我在工作中认识了几个与C#和C代码类似的小组(但他们没有多平台约束)。

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

答案 4 :(得分:0)

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

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

答案 5 :(得分:0)

有许多语言脚本可以让这很容易。我会选择tcl / tk,它几乎可以在Mac上运行,并且几乎可以在任何你能想到的机器上跨平台。

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

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

答案 6 :(得分:0)

如果您需要本机GUI,请使用wxWidgets或QT。 (我使用wxWidgets ......)

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

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