我正在用python2制作一个聊天应用程序。没有GUI,全部是CLI。我试图想出一种方法来确保等待命令的原始输入提示符(包括用户迄今为止键入的所有内容)始终是最后显示的内容。不一定要在用户视图的底部。只需要把目前发生的一切都放在下面。在
问题是,如果其他人向用户发送了一条消息,当消息在提示中弹出,然后光标向下移动而没有提示时,它看起来会很混乱和草率,等等
例如:--- Started chat ---
Input: Hello. Good to meeReceived: Hi there!
t you. ('Enter')
Input:
在本例中,用户在键入“meet”时收到一条消息。用户在输入“you”后仍然可以发送消息,而另一个用户仍将收到“Hello”。很高兴见到你。”但这看起来还是很糟糕。当用户试图在输入中向应用程序键入命令,而不是总是向其他人发送消息,或者根本没有输入任何内容时,也可能发生这种情况。理想情况下,其他线程的输出将被打印,而到目前为止,输入行看起来就像是被按下的。在
我需要它在Windows和其他系统上运行,所以我不认为我可以使用curses,或者像urwid或npyscreen建议的here这样的带有诅咒的库。我的想法是监听消息的线程可以以某种方式复制到目前为止提示行上的内容,然后删除行上的文本,显示一条消息,然后将复制的输入行打印到一个新行上,这样光标就可以回到原来的位置了。有可能吗?有没有其他一些windows/unix/linux友好的方式来实现这一点?在