【问题标题】:How to get a binded key not to type into Entry box如何让绑定的密钥不输入输入框
【发布时间】:2014-03-16 12:22:10
【问题描述】:

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

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, "á")

【问题讨论】:

    标签: python python-3.x tkinter diacritics tkinter-entry


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-11
      • 2012-11-29
      • 2021-11-29
      • 2020-06-18
      • 1970-01-01
      • 1970-01-01
      • 2021-06-04
      • 2017-11-05
      相关资源
      最近更新 更多