2009-08-06 10 views
4

私たちのバイオインフォマティクスラボでは、最近C言語で書かれた(最適化された)プログラム用のGUIを作成するように求められました。 WindowsとMacの両方に簡単に移植することができます。これをやり遂げる方法は何ですか?ラージCプログラムのGUIへのアプローチ

答えて

3

CのWindows/Macで動作するGUIツールキットをお探しの場合は、GTKとお考えですか?

1

フロントエンドのGUIをJavaで記述し、Cプログラムから入力と出力を受け取ることができます。私はC#とCのコードと似たような仕事をしているグループをいくつか知っています(ただし、マルチプラットフォームの制約はありません)。

この方法では、必ずしもCツールキットを使用してGUIを作成する必要はありません。

0

プログラムの性質によっては、あなたが望む任意の言語で完全に別個のGUIアプリケーションを作成し、そこから既存のプログラムをfork /実行して、stdinとstdoutをGUIプログラムにリダイレクトすることができます。既存のプログラムがどのように動作するかによって、これはうまくいくかもしれませんし、非常に面倒かもしれません。

GTK(C APIを持っている)のようなGUIコードで既存のプログラムを拡張することもできますし、Qtを使うこともできます(C++ですが、C++からC関数を呼び出すときには問題ありません「extern」C「 ''として)。

3

QTまたはwxWidgetsをダウンロードしてください。

誰かがすでに持っていて無料で使用できるようになるのはなぜですか?私は自分自身がQTを好む、btw。

編集:これはC++を使用することを意味しますが、Cコードでは完全に機能します。

0

これを簡単に行うことができる言語でのスクリプト作成が多数あります。私はtcl/tkのために行くだろうが、それはほとんどの箱からMacで動作し、あなたが考えることができるほとんどすべてのマシンにクロスプラットフォームです。

GTKも素晴らしいですし、多くのスクリプト言語にはバインディングがあります。

あなたがする必要がない場合はおそらく、あなたのGUIをcで書いたくありません。迅速に開発されたスクリプト言語を使用してください。

2

別のプログラムを使用してください。

既存のコードを壊すことはありません。コードがプログラマーが知らない/理解できないかもしれないというバイオ知識を持っている場合は特に重要です。

Guiが頻繁に変更され、数年後にはNewSuperOsToolkit(tm)のguiを書き換えようとしていますが、基礎となるワーカーコードは変更されません。私たちは、もともとラテン語で書かれた大気モデルコードを持っています。

エンジンコードをバッチとして、クラウド内のMPI上で並列に実行することができます。また、考えていない他の方法もあります。

+0

+1。別のプロセスか、少なくともあなたのGUIから呼び出したリンクされたライブラリ。あなたは、GUIをリリースした日に時代遅れになったGUIツールキット(言語)を実行できる唯一の古いコンピュータを誰もが使用することを非難するつもりはありません。 Cコンパイラは近い将来にそこにいます。 – jbcreix

0

ネイティブGUIが必要な場合は、wxWidgetsまたはQTを使用します。 (私はwxWidgetsを使用しています...)

代わりに、JavascriptとCSSを使用したHTMLベースのインターフェースがあります。あなたはGUIライブラリを完全に避けて、クロスプラットフォームのサポートを得て、結果はいくつかの次元では良く、他のものでは悪いです。

スタンドアロンのユーザーインターフェイスが本当に必要な場合は、WebKitなどのバイナリに統合できます。

関連する問題