PerlでGUIを作成する他のソリューションと比較したTkモジュールの欠点は何ですか?
2 に答える
私は最近PerlのさまざまなGUIモジュールを見学しましたが、ここに私の要約があります(免責事項:最終的には既存のモジュールのどれも私のニーズを満たしていないことがわかったので、独自のGUIツールキットを書き始めました)。
Tk-作業に適していて、インターフェイスは非常に魅力的です。GUI自体は少し古くなっており、オペレーティングシステムのネイティブウィジェット(ファイルピッカーなど)を利用していません。ほとんどのシステムでは、インストールするためにCコンパイラが必要になります。
Wx-操作が難しく、傷のないインターフェース。大規模なプログラムでは、ほとんどすべてを追跡するためにGUIビルダーが必要です。OSレベルのウィジェットのサポートはまちまちです。TkIMOよりも見栄えが良い。コンパイルが含まれ、いくつかのライブラリをインストールする必要があり、Windowsで実行するのが難しい場合があります。プログラムのアセンブリは非常に手続き型であり、プログラムが実際にどのように見えるかを明確にマッピングしていません。
Qt-最後に、このモジュールは多かれ少なかれ放棄されており、Qt3のみをサポートしていることを確認しました。インストールはしませんでしたが、コンパイラが必要だと思います。
Prima-Tkと同様に、外観は古くなっています。コンパイラが必要です。
W32 :: GUI-クロスプラットフォームではないため、これを早期に除外しました。
XUL :: Node / POE :: XUL::Node-Cコードを含むかなり重い依存関係ツリー。メンテナンスされていないようで、インストールするまでにさまざまな経験がありました。Windowsはダメ、OSXはダメ、OpenSUSEの機能は制限されていました。また、XUL言語のサブセットのみをサポートします。
既存のGUIツールキットのどれも、アプリケーションをエンドユーザーに配布するのに十分なほど簡単ではないことがわかりました。プログラマーがライブラリの依存関係を解決してコードをコンパイルするというフープを飛び越えることを期待するのは問題ありませんが、エンドユーザーはそうするつもりはありません。したがって、私が最初に必要とした要件は、純粋なPerlであることでした。
次に、既存のGUIツールキットのほぼすべてで、非常に手続き的な方法で作業する必要があります。コンテナを作成します。コンテナのパッカーを作成します。オブジェクトを作成します。そのオブジェクトにプロパティを設定します。オブジェクトをパッカーに追加します。パッカーを実行して、コンテナーオブジェクトを埋めます。繰り返す。
代わりに、2つの理由から、ネストされたデザイン(HTMLなど)の方がわかりやすいことがわかりました。まず、オブジェクトはネストされているため、すべてに名前を付ける必要はありません(label_456、label_457 ...)。第二に、プログラムの構造は、表示されるものの構造を反映しています。
そこで、XUL :: Guiの作業を開始しましたが、かなり順調に進んでいます。これは純粋なPerlであり、インストールを容易にするためにコアモジュールのみに依存しています。外部要件が1つあります。それは、Firefoxの最近の(3+)コピーがインストールされていることです。これは、CSSでスタイル設定されたネストされたタグを使用したWeb開発の使い慣れたデザインパターンを使用します。それは確かにあなたがそれを使ってフル機能のシングルウィンドウアプリケーションを書くことができるレベルにあります。
これが、プロジェクトに最適なツールキットを見つけるのに役立つことを願っています。
Tkは非常に長い間開発されていません。ActiveStateは現在、TclTk上に薄層を提供するTkxツールキットを使用した開発を推奨しています。これは、テーマウィジェットが可能であることを意味します。しかし、TclTkは、他の多くのGUIツールキットと比較してまだかなり原始的です。
私はXUL:Guiを試したことがありませんが、それは進むべき道のようです。