2011-12-01 12 views
24

これらの3つの違いは何ですか?私が理解している限り、彼らはどちらも端末テキストベースのUI用のCライブラリであるcursesへのバインディングを提供しています。Python ncurses、CDK、urwidの違い

私は現在3つのうちのどれも知っていませんし、私は呪いを使ったこともありません。どちらをお勧めしますか?私はncursesについて何回も聞いたことがありますが、CDKについては(研究を通して)1回か2回しか聞こえず、私には聞こえませんでした(私は思う)。

答えて

25

は次のとおりです。

  • ncurses:それは呪いのフリーソフトウェアのバージョンですので、あなたはすべての種類の低レベルの詳細に対処する必要があります。
  • pyCDK:ウィジェットを提供する上位レベルのライブラリです。私はこれを使っていませんが、sourceforgeプロジェクトページによれば、長い間(少なくともPythonバインディングでは)維持されていませんでしたので、私はこれと一緒に行くつもりはありません。
  • urwid:私はこの1つを使用しましたし、私はそれはまだ少し低いレベル(それはウィジェットライブラリよりも多くのフレームワークです)だと言ってきましたが、それでも非常に便利と非常にユーザーフレンドリーに呪いより。 UIフレームワークとして、ウィジェット、イベント、ウィジェットのレイアウトを制御する方法のような一般的な機能があります。私が言っていることのいくつかはcursesで難しいですが、urwidでは簡単です:端末のサイズが変更されたときにウィジェットを再描画し、マウス入力を集める(例えばボタンをクリックする)。

私は、urwidを使用することをお勧めします。それがあなたのニーズを満たさない場合は、他の選択肢を探してください。

+2

また、UrwidはUnicode入力を正常に処理しますが、他の多くのコンソールAPIではそうではありません。 –

+0

私はC++ Qt4を、Javaのスイング/ AWT、C#の.Net、PythonのTKのようなウィジェット・ツールキットのカップルを使用してきました...これらのすべてが共通している:ウィジェットのライブラリは、コンテナは他のウィジェット、レイアウト、イベントを開催しますループ/非同期メカニズム。 Pythonには 'curses'が含まれていますので、必要な基本(ウィジェット、コンテナ、レイアウト、イベントループ機構のライブラリ)を呼び出す必要はありません。 |||一方、 'urwid'は基本(ウィジェット、レイアウト、イベントループ機構のライブラリ)を持っています。また、非常に良い例、チュートリアル、ドキュメンテーションがあり、すぐに使えるようになりました。 –

3

私はライブラリのいずれかを使用していないが、私はあなたが参照していると仮定しています:

  • Pythonのビルトインcursesモジュール
  • pycdk、PythonインタフェースCDK
  • urwidコンソールUIライブラリ

これらは同じ目的の別のライブラリで、コンソールベースのUI用のAPIを提供しています。 previous questionから、cursesには、より低レベルの定型文が必要です。注意すべき点の1つは、PythonのcursesモジュールがUnixでのみ利用可能であることです。 Windowsの場合は、Fredrik Lundhが書いたConsoleモジュールを見るとよいでしょう。

urwidは開発が進んでいるように見えますが、やや積極的に開発されていますが、他の選択肢も有望です。私はいくつかの参照を見た後、何を得る