Я могу реализовать демоны чата с помощью gevent и zeromq, но я бы хотел создать для них консольный интерфейс.
Моя первая попытка с ncurses завершилась неудачно, поэтому я попробовал Urwid и нашел что проект nigiri шел именно так, как я хотел:
Я изучил исходный код, но, не знакомый с программированием на консольном интерфейсе, мне не удалось найти часть, которая создавала этот результат (особенно потому, что она использовала несколько вкладок), хотя я думаю, что мне нужно играть с подключить сигнал.
Есть ли у кого-нибудь фрагмент, который может это сделать?
Мне не нужна вся программа, я могу обрабатывать сообщение, демоны, параметры и все остальное самостоятельно.
Просто основы настройки пользовательского интерфейса, введите текст внизу и асинхронно уведомите верхнюю панель, чтобы добавить текст, пока он не блокирует нижний вывод.
Спасибо
При вычислении, если вы не умны, вам нужно быть терпеливым. Я просто применил старый старый ключ try/except к моему методу программирования:
Я просто удалил исходный код nigiri до тех пор, пока он не поместится в один файл.
Это работает. Теперь я должен выяснить, как сделать общие циклы urwid и zeromq хорошими вместе.
7 лет спустя, но я наткнулся на эту тему, пытаясь сделать что-то похожее, и обнаружил, что это может быть именно то, что вам нужно.
if __name__=='__main__':
class TestCmd(Command):
def do_echo(self, *args):
'''echo - Just echos all arguments'''
return ' '.join(args)
def do_raise(self, *args):
raise Exception('Some Error')
c=Commander('Test', cmd_cb=TestCmd())
#Test asynch output - e.g. comming from different thread
import time
def run():
while True:
time.sleep(1)
c.output('Tick', 'green')
t=Thread(target=run)
t.daemon=True
t.start()
#start main loop
c.loop()