5

私が書いている OCaml アプリケーションの GUI を構築したいと思います。私の最初のアイデアはGTK+を使うことでした。自分のアプリケーションを Mac、Linux、Windows で自然なルック アンド フィールで実行したいと考えています。GTK+ はデフォルトで Mac で X11 を使用しますが (これはひどいようです)、クォーツを使用し、自然に見えるgtk-osx-applicationがあり、macports を使用してインストールしたばかりです。

3 つの質問があります。

gtk-osx-application +quartz+no_x11(1) 実際にOCamlで使えるの?(以前に (x11 ベースの gtk2 を配置して) lablgtk2 を問題なくインストールした私の GODI インストールは、現在 (gtk-osx-application +quartz+no_x11および以前の x11 ベースの gtk2 を削除して) が見つからないことについて不平を言ってい/opt/local/lib/libgtk-x11-2.0.0.dylibます。これは x11 関連です。しかし、私が知る限りGODI を介して lablgtk2 をインストールする場合、x11 よりもクォーツを選択する方法はありません。)

(2) gtk-osx-application を使用して自分の Mac でコードを開発した場合、別の GTK を使用する他のプラットフォームでコンパイルするためにコードをそのまま使用できますか?それとも問題が発生する可能性がありますか?

(3) 問題が発生する場合、OCaml で GUI を開発するための他の環境で、ルック アンド フィールの両方が優れている可能性があり、容易に相互利用できる環境を知っていますか? (私は labltk を認識していますが、より多くの機能を備えたものを好みます。たとえば、ノートブック、別名タブ付きパネルを使用する機能、および Glade を使用して迅速な GUI 設計を行うことができる機能などです。)

助けてくれてありがとう!

乾杯、スリケーター

4

1 に答える 1

3

lablgtk を動作させることができると仮定すると、現時点ではおそらくそれが最善の策です。

動作させるには: X11 GTK を削除して Quartz GTK をインストールした後、lablgtk を再構築してみましたか? X11 GTK に対してビルドされた LablGTK は、間違ったライブラリに対してリンクされるため、Quartz GTK では当然動作しませんが、再構築は成功する可能性があります。また、LablGTK が X11 統合呼び出しが機能しないことを正しく検出せず、ビルドに失敗する可能性もありますが、LablGTK は Windows をサポートしているため、修正するのはそれほど難しくないと思います。

Mac で GTK 用のコードを開発した場合、他のプラットフォームでも問題なく動作するはずです。もちろん、テストしたいと思うでしょうが、うまくいくはずです。ダイアログ ボタンの順序などを適切に機能させるには、GTK 機能を使用するように注意してください。

一時期、wxWidgets への OCaml バインディングのセットがあったと思いますが、それらは広く使用されていないようで、私の経験では wx を扱うのは苦痛です。Qt バインディングを作成する作業もいくつかありましたが、これはすばらしいことですが、その面で前進しているプロジェクトはまだないと思います。

UI がプロジェクトの小さな部分である場合は、バックエンドから分離して Qt を使用して C++ で UI を作成するか、プラットフォーム ネイティブの UI を作成し、UI が組み込みの OCaml コードを呼び出すようにすることを検討できます。実際の作業を完了するためのランタイム。ただし、アプリケーションによっては、より多くの作業が必要になる可能性があり、あまりメリットがない場合があります。

つまり、現在の状況では GTK が最良の選択肢です。

于 2011-01-28T16:55:44.910 に答える