在我们的生物信息学实验室中,我们最近被要求为C中编写(和优化)的程序创建GUI。我们设计的任何GUI都需要能够向C程序提供输入和接收输出,同时也可轻松移植到Windows和Mac。有什么方法可以做到这一点?
答案 0 :(得分:3)
如果您正在寻找适用于C语言的Windows / Mac的GUI工具包,您是否考虑过GTK?
答案 1 :(得分:3)
答案 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这样的二进制文件中。