2011-12-01 76 views
24

這3個有什麼區別?據我瞭解,它們都提供綁定到curses這是基於終端文本的UI的C庫。Python ncurses,CDK,urwid差異

我目前還沒有任何3的知識,我從來沒有使用詛咒。你會推薦哪一個?我聽說過很多次,但只有一次或兩次關於CDK(通過研究),從未聽說過urwid(我認爲)。

回答

25

什麼看一些參考資料後,我得到的是:

  • ncurses:這是詛咒的自由軟件版本,所以你必須處理所有類型的低級細節。
  • pyCDK:這是一個更高層次的庫,提供了一些小部件。我沒有使用過這個,但根據sourceforge項目頁面,它已經很久沒有維護了(至少是python綁定),所以我不會用這個。
  • urwid:我用這一個,我一直說這還是有點低的水平(這更是一個比一個部件庫框架),但仍然非常有用和多用戶友好比詛咒。作爲一個UI框架,它擁有你通常期望的所有東西,如小部件,事件和控制小部件佈局的方法。我想說的一些事情很難curses,但urwid很容易:當終端調整大小並收集鼠標輸入(例如,單擊按鈕)時重繪您的小部件。

所以我的建議是使用urwid,如果它不符合您的需求尋找其他的選擇。

+2

此外,Urwid處理Unicode輸入擺好,其中有許多其他的控制檯API不。 –

+0

我用了幾個小部件的工具包,如C++的Qt4,的Java Swing/AWT,C#.NET,Python的傳統知識......所有這些的共同點:小部件庫,集裝箱持有的其他部件,佈局,事件循環/異步機制。包含'curses'的python沒有我想要的基礎知識(小部件,容器,佈局,事件循環機制庫)。 |||另一方面'urwid'確實具有基礎知識(小部件庫,佈局,事件循環機制)。並有非常好的示例,教程和文檔,以便您快速啓動。 –

3

我沒有使用任何的庫,但我假設你指的是:

他們只是用相同的目標不同的庫:提供基於控制檯的用戶界面的API。從previous question看來,curses需要更多的低級別樣板。有一點需要注意的是,Python的curses模塊僅在Unix下可用;如果您使用的是Windows,您可能需要查看Fredrik Lundh編寫的Console模塊。

兩個其他的選擇似乎有前途的爲好,雖然看起來urwid儘可能發展進入更加有組織的,並仍在積極有所發展。