Есть ли способ создать отдельный дисплей и ввод на одном терминале, используя curse? - PullRequest
6 голосов
/ 20 апреля 2011

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

------------
|          |
|     A    |
|__________|
|_____B____|

A - это отдельный процесс, который зацикливается и отображает список событий в реальном времени.Это самообновление.

B - командная строка.Он исправлен внизу и получил историю команд.

Я знаю, что некоторые программы командной строки IRC делают это, поэтому это должно быть возможно.

Бонус, если вы можете дать мне фрагмент с помощью Python

Мне известно о этом посте , но я немного заблудился в документации проклятия.

Ответы [ 3 ]

1 голос
/ 26 декабря 2011

В конце концов я попытался сделать это с помощью urwid, который намного выше, чем ncurse.

Я задал вопрос об этом на SO и больше результатов не получил.

Но в конце концов я нашел несколько FOSS, которые сделали именно это, я использовал исходный код и сделал что-то, что работало. Вы можете найти ответ в связанном вопросе .

0 голосов
/ 20 марта 2016

Для потомков - это отличная реализация желаемой архитектуры, написанная с помощью urwid (оболочки ncurses): http://zderadicka.eu/terminal-interfaces-in-python/#comment-123799

Потребовалась некоторая настройка, чтобы превратить ее в чат-клиент, но это довольноэто просто сделать с помощью труб.Код автора на github: https://github.com/izderadicka/xmpp-tester/blob/master/commander.py

0 голосов
/ 28 апреля 2011

Взгляните на каталог /Demo/curses/ исходного кода Python.В нем перечислены несколько интересных примеров с использованием модуля curses, из которого вы можете узнать все, что вам нужно, и некоторые другие.

...