有没有办法在Tkinter Entry小部件中添加撤消和重做功能,还是必须使用单行Text小部件来实现此类功能?
如果是后者,在配置Text小部件作为Entry小部件时,是否有任何提示?
可能需要调整的一些功能包括捕获Return KeyPress,将Tab键按键转换为更改焦点的请求,以及从剪贴板粘贴的文本中删除换行符.
解决方法:
免责声明:这些只是我想到如何实现它的想法.
class History(object):
def __init__(self):
self.l = ['']
self.i = 0
def next(self):
if self.i == len(self.l):
return None
self.i += 1
return self.l[self.i]
def prev(self):
if self.i == 0:
return None
self.i -= 1
return self.l[self.i]
def add(self, s):
del self.l[self.i+1:]
self.l.append(s)
self.i += 1
def current(self):
return self.l[self.i]
运行每隔X秒(0.5?)保存条目状态的线程:
history = History()
...
history.add(stringval.get())
您还可以设置保存条目状态的事件,例如Return的压力.
prev = history.prev()
if prev is not None:
stringvar.set(prev)
要么
next = history.next()
if next is not None:
stringvar.set(next)
请注意根据需要设置锁定.
标签:python,user-interface,text,tkinter,tkinter-entry
来源: https://codeday.me/bug/20190630/1341160.html