私たちのバイオインフォマティクスラボでは、最近、Cで記述された(そして最適化された)プログラムのGUIを作成するように依頼されました。 WindowsとMacの両方に移植可能。これを行うにはどうすればよいですか?
7 に答える
CのWindows/Macで動作するGUIツールキットをお探しの場合、GTKを検討しましたか?
別のプログラムを使用してください。
既存のコードを壊すことはありません。コードに、プログラマーが知らない/理解していない/テストしていないバイオ知識がある場合は特に重要です。
GUI は頻繁に変更されます。数年以内に、NewSuperOsToolkit(tm) の GUI を書き直すことになりますが、基になるワーカー コードは変更されません。もともとラテン語で書かれた大気モデリング コードがあります。
エンジン コードをバッチとして実行したり、クラウドの MPI で並列に実行したり、思いもよらなかった他の方法を多数実行したりできます。
フロントエンドGUIをJavaで記述し、それらにCプログラムからの入力のフィードと出力の受信をさせることができます。私はここで、C#およびCコードと同様のことを行ういくつかのグループを知っています(ただし、マルチプラットフォームの制約はありません)。
このように、必ずしもCツールキットを使用してGUIを作成する必要はありません。
ネイティブGUIが必要な場合は、wxWidgetsまたはQTを使用してください。(私はwxWidgetsを使用しています...)
別の方法は、JavascriptとCSSを使用してHTMLベースのインターフェースを使用することです。GUIライブラリを完全に回避すると、クロスプラットフォームのサポートが得られ、一部のディメンションでは結果が良くなり、他のディメンションでは悪くなります。
スタンドアロンのユーザーインターフェイスが本当に必要な場合は、WebKitなどのバイナリに統合できます。
プログラムの性質に応じて、完全に別個のGUIアプリケーションを(任意の言語で)作成し、既存のプログラムをフォーク/実行して、そのstdinとstdoutをGUIプログラムにリダイレクトすることができます。既存のプログラムがどのように機能するかに応じて、これはうまく機能するか、非常に面倒になる可能性があります。
GTK(C APIを含む)のようなGUIコードで既存のプログラムを拡張することも、Qt(C ++)を使用することもできますが、「extern」として定義すると、通常、C++からC関数を呼び出すのに問題はありません。 C "')。
これを簡単に行うことができる言語を使用したスクリプトが多数あります。私は tcl/tk を選びます。これは、ほとんど箱から出してすぐに Mac で動作し、考えられるほぼすべてのマシンでクロスプラットフォームです。
また、GTK は優れており、多くのスクリプト言語にバインディングがあります。
必要がなければ、c で GUI を書きたくないでしょう。迅速な開発スクリプト言語を使用します。