Python ncurses, CDK, разница в написании - PullRequest
25 голосов
/ 02 декабря 2011

Какая разница между этими 3?Насколько я понимаю, они оба обеспечивают привязку к curses, которая является библиотекой C для пользовательского интерфейса терминала на основе текста.

В настоящее время я не знаю ни одного из 3, и я никогда не использовал curses.Какой из них вы бы порекомендовали?Я слышал о ncurses много раз, но только один или два раза о CDK (посредством исследований) и никогда не слышал о urwid (я думаю).

Ответы [ 2 ]

30 голосов
/ 02 декабря 2011

Что я получаю после просмотра некоторых ссылок:

  • ncurses : Это бесплатная версия программного обеспечения curses, поэтому вам придется иметь дело со всеми видами низкоуровневых деталей.
  • pyCDK : это библиотека более высокого уровня, которая предоставляет некоторые виджеты. Я не использовал этот, но, согласно странице проекта sourceforge, он долгое время не поддерживается (по крайней мере, привязка к python), поэтому я бы не стал его использовать.
  • urwid : я использовал этот, и я должен сказать, что он все еще немного низкоуровневый (это скорее фреймворк, чем библиотека виджетов), но все же довольно полезный и намного более удобный для пользователя чем проклятия. В качестве инфраструктуры пользовательского интерфейса он содержит все, что вы обычно ожидаете, такие как виджеты, события и способ управления макетом виджетов. Некоторые вещи, которые я бы сказал, сложны с curses, но просты с urwid: перерисовать ваши виджеты при изменении размера терминала и собрать ввод мыши (например, нажав на кнопку).

Поэтому я рекомендую использовать urwid, и если он не соответствует вашим потребностям, поищите другие альтернативы.

3 голосов
/ 02 декабря 2011

Я не использовал ни одну из библиотек, но я предполагаю, что вы имеете в виду:

  • Встроенный в Python curses модуль
  • pycdk, интерфейс Python для CDK
  • Библиотека консоли * urwid

Это просто разные библиотеки с одной и той же целью: предоставить API для консольного интерфейса. Из предыдущего вопроса кажется, что curses требует большего количества шаблонов низкого уровня. Стоит отметить, что модуль Python curses доступен только под Unix; если вы работаете в Windows, вы можете посмотреть на модуль Console, написанный Фредриком Лундом.

Оба других варианта также кажутся многообещающими, хотя urwid выглядит более организованным в плане развития и все еще активно развивается.

...