web-dev-qa-db-ja.com

Python ncurses、CDK、urwidの違い

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

私は現在、3つのいずれについても知識がなく、呪いを使ったことがありません。どちらをお勧めしますか? ncursesについては何度も聞いたことがありますが、CDKについては(調査を通じて)1〜2回しか聞いたことがなく、urwidについては聞いたことがありません(私は思います)。

25
s5s

いくつかの参考文献を見た後に私が得るものは次のとおりです。

  • ncurses :これはcursesのフリーソフトウェアバージョンであるため、あらゆる種類の低レベルの詳細を処理する必要があります。
  • pyCDK :いくつかのウィジェットを提供する高レベルのライブラリです。私はこれを使用していませんが、sourceforgeプロジェクトページによると、長い間メンテナンスされていないため(少なくともpythonバインディング)、これは使用しません。
  • rwid :私はこれを使用しましたが、まだ少し低レベルです(ウィジェットライブラリよりもフレームワークです)が、それでも非常に便利で、cursesよりもはるかにユーザーフレンドリーです。 UIフレームワークとして、ウィジェット、イベント、ウィジェットのレイアウトを制御する方法など、通常期待されるすべてのものが含まれています。 cursesでは難しいと思いますが、urwidでは簡単です。端末のサイズが変更されたときにウィジェットを再描画し、マウス入力を収集します(たとえば、ボタンをクリックします)。 。

したがって、urwidを使用することをお勧めします。それがニーズを満たさない場合は、他の代替手段を探してください。

32
jcollado

私はどのライブラリも使用していませんが、あなたが参照していると思います:

これらは、コンソールベースのUI用のAPIを提供するという同じ目標を持つ単なる異なるライブラリです。 前の質問 から、cursesにはもっと低レベルの定型文が必要なようです。注意すべき点の1つは、PythonのcursesモジュールはUnixでのみ使用できるということです。 Windowsを使用している場合は、Fredrik Lundhによって作成された Console モジュールを確認することをお勧めします。

urwidは開発に関してはより組織化されているように見え、まだいくらか活発に開発されていますが、他の選択肢も両方とも有望に見えます。

3
voithos