【问题标题】:Keybinding in tkinter Pythontkinter Python中的键绑定
【发布时间】:2020-07-16 07:09:20
【问题描述】:

如果我在键盘中输入“*”,则应在输入字段中输入“x”。下面是示例代码。我是 tkinter 的新手。

from tkinter import *
def func(number):
    x = str(e1.get())
    e1.delete(0, END)
    e1.insert(0, str(x) + str('x'))
    
main = Tk()
main.geometry('200x50')
e1=Entry()
e1.bind('*',func)
e1.pack()
main.mainloop()

我在这里得到“x*”。但我只需要在输入字段中输入“x”。任何建议都会很有帮助。

【问题讨论】:

  • e1.insert(0, str(x)) 代表e1.insert(0, str(x) + str('x'))?
  • func() 末尾添加return 'break' 以忽略输入的* 键。
  • @acw1668 现在可以使用了。谢谢
  • @Renaud 我从 acw1668 得到了答案。谢谢

标签: python tkinter key-bindings


【解决方案1】:

您需要忽略在func() 末尾返回'break' 输入的* 字符。如果输入光标不在输入字符串的末尾,您的逻辑也将不起作用。

以下是修改后的func()

def func(event):
    # add the "x" at the insertion position
    event.widget.insert('insert', 'x')
    # ignore the entered "*" character
    return 'break'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-20
    • 2013-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    相关资源
    最近更新 更多