首页 > 解决方案 > Python tkinter - ttk - bind - 用另一个替换按下的字符

问题描述

我想在按下键时在 TTK 条目中写入特定字符,从条目中删除与该特定键相关的字符。

例如:

如果我按 * 我希望在条目中输入 × 而不是 ×* 就像我尝试这样做(见下文)

目前我这样做了,但它没有按预期工作(在这个摘录中没有导入并且没有定义窗口):

def writeToEntry(text, delete=False):
    if delete:
        e.delete(0, END)
    e.insert(END, text)
    e.focus_set()

e = Entry(w)
e.grid(row=0, column=0, columnspan=3, sticky="nsew")
e.bind('*', lambda event: writeToEntry("×"))
e.bind('/', lambda event: writeToEntry("÷"))

请你帮助我好吗?谢谢

标签: pythonpython-3.xtkinterttktkinter-entry

解决方案


您只需返回字符串“break”以防止插入原始字符。

def writeToEntry(text, delete=False):
    if delete:
        e.delete(0, END)
    e.insert(END, text)
    e.focus_set()
    return "break"

推荐阅读