隐藏tkinter.text小部件中的类型字符

时间:2013-02-22 19:00:38

标签: python-3.x tkinter

我正在尝试编写类似于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)

有没有办法隐藏输入的字符?

1 个答案:

答案 0 :(得分:1)

我不完全确定您如何将Text小部件与串口一起使用,但似乎您想要在按键时覆盖默认操作。您可以通过在处理函数中返回字符串"break"来完成它:

edit.bind("<KeyPress>", lambda e: "break")

我在Python 2.7(使用Tkinter 8.1)上尝试过它,我想它也适用于你的版本,但如果没有,请告诉我。