Причина, по которой вы получаете эти неизвестные символы в виджете Entry
, заключается в том, что по какой-то причине коды символов "Вверх" (\ uf700) и "Вниз" ( \ uf701) стрелки печатают
при запуске из доморощенного питона, но не с анакондой, не знаю, почему это так.
Вы можете попытаться увидеть себя, запустив этот код с любым из них.
root = Tk()
E = Entry(root)
E.bind('<Key>', lambda e: print(e.char))
E.pack()
root.mainloop()
Решение, которое я придумаю, состоит в том, чтобы перезаписать основную <Key>
привязку Entry
виджета, чтобы игнорировать «Вверх» и «Вниз» стрелки.
import tkinter as tk
class Entry(tk.Entry):
def __init__(self, master=None, cnf={}, **kw):
super(Entry, self).__init__(master=master, cnf=cnf, **kw)
self.bind_class('Entry', '<Key>', self.add_char)
def add_char(self, evt):
if evt.char != '\uf701' and evt.char != '\uf700':
self.insert('insert', evt.char)
self.xview_moveto(1)
if __name__ == "__main__":
root = tk.Tk()
E = Entry(root)
E.pack()
root.mainloop()