自然なルックアンドフィールでOCAMLのGUI相互開発
-
26-10-2019 - |
質問
書いているOCAMLアプリケーションのGUIを構築したいと思います。私の最初のアイデアは使用することでした GTK+. 。私のアプリケーションは、自然なルックアンドフィールを備えたMac、Linux、Windowsで実行してください。 GTK+はデフォルトでMACでX11を使用していますが(ひどいように見えます)、 GTK-OSXアプリケーション Quartzを使用し、自然に見え、MacPortsを使用してインストールしたばかりです。
私には3つの質問があります:
(1)実際に使用することは可能ですか gtk-osx-application +quartz+no_x11
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よりQuartzを選択する方法はありません。
(2)GTK-OSXアプリケーションを使用してMACでコードを作成した場合、異なるGTKを使用する他のプラットフォームでコンパイル用のコードを使用できますか、それとも問題をもたらすことができますか?
(3)問題が発生した場合、外観と感触の両方に関して潜在的に良い可能性があり、まだ容易に使用される可能性のあるOCAMLでGUIを開発するための他の環境を知っていますか? (私はLABLTKを知っていますが、たとえば、ノートブック、別名タブパネルを使用し、Gladeを使用して迅速なGUIデザインを使用できるように、より多くの機能を備えたものを好みます。)
助けてくれてありがとう!
乾杯、サーケーター
解決
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は現在のランドスケープの最良の選択肢です。