python中撤销_python – 在Tkinter Entry小部件中撤消和重做?

有没有办法在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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值