我正在尝试编写类似于hyperTerminal的小应用程序: 在“文本”小部件中键入的每个字符都在串行端口上发送,并且在串行端口上接收的每个字符都显示在“文本”小组件中。 问题是连接到串行端口的设备返回它接收的字符的回声。所以我在Text小部件中获得了2个字符(键入和回显)
我试图删除所有类型的字符,但我正在寻找更好的解决方案。
def clavier(event):
global sp
edit.delete("insert-1c") # delete typed character
try:
sp.write(event.char.encode('Latin-1'))
except:
edit.insert(INSERT,'\nPort fermé, choisissez un port\n', 'rouge')
edit = Text(cadre, width=50,height=20,yscrollcommand = Vscroll.set)
edit.bind("<KeyRelease>", clavier)
有没有办法隐藏输入的字符?
答案 0 :(得分:1)
我不完全确定您如何将Text
小部件与串口一起使用,但似乎您想要在按键时覆盖默认操作。您可以通过在处理函数中返回字符串"break"
来完成它:
edit.bind("<KeyPress>", lambda e: "break")
我在Python 2.7(使用Tkinter 8.1)上尝试过它,我想它也适用于你的版本,但如果没有,请告诉我。