1

我有一个程序,我想在其中输入,例如,当在输入框中输入 g^ 时输入 ĝ。我有 ĝ 出现,但似乎无法摆脱已输入的 ^ 的输入框(是的,我曾尝试使用删除功能)。据我所知, ^ 直到绑定函数发生后才被输入,这意味着如果我尝试索引"^"or "/",它实际上还没有被输入。

from tkinter import *
tk = Tk()
entry = Entry(tk)
entry.pack()
entry.bind("^", lambda x: accent(entry, "^"))
entry.bind("/", lambda x: accent(entry, "/"))

def accent(object, accent):
    global entry
    letter = entry.get()[len(entry.get())-1]
    entry.delete((len(entry.get())-1), len(entry.get()))
    if accent == "^":
        if letter == "a":
            entry.insert(END, "â")
        if letter == "g":
            entry.insert(END, "ĝ")
    if accent == "/":
        if letter == "a":
            entry.insert(END, "á")
4

1 回答 1

1

您的绑定需要 return "break",它告诉 tkinter 停止对该事件的任何进一步处理。返回“break”将阻止字符被插入。

于 2014-03-16T12:26:13.150 回答