我正在编写一个Chatserver / -client来学习Python。 现在我想让控制台输入更好一些,但我不知道怎么做......
每次我从套接字收到消息时,我都会在监听线程中print()
。
但是,已输入input()
的文本已打印在打印的消息上,光标位于底部。
我能做些什么,就像在Minecraft-Server中一样,所以已输入的文字会移到底部? 如果有人可以提供帮助,那就太好了。)
答案 0 :(得分:1)
您无法通过控制台获得该级别的控制,但您可以使用python的默认tkinter来创建简单的UI。下面是一个例子(Python 3),我在几分钟内掀起了。您可以输入消息,按发送,它们将显示在上面的框中。
from tkinter import *
from tkinter import ttk
def send(view, entry):
view.insert('1.0', entry.get() + "\n")
root = Tk()
msgview = Text(root, width=100, height=20)
msgview.grid(sticky=(N,E,S,W))
mymessage = StringVar(value="type here...")
msginput = Entry(root, textvariable=mymessage)
msginput.grid(sticky=(E,W))
sendbutton = ttk.Button(root, text="send",\
command=lambda: send(msgview, msginput))
sendbutton.grid()
root.mainloop()
我建议查看tkdocs tutorial上的here,因为它更清晰,更容易理解,在我看来更彻底。新墨西哥州技术学院也为tkinter {{3}}
提供了很好的参考