鱼c笔记——Python 的 GUI 编程(七):Tkinter 的 Text 组件实用技巧

有关 Text 组件的基本用法在上一篇博客中已经讲述,这里不再赘述。

这里将讲述 Text 组件的实用技巧:

目录

①判断内容是否发生变化

②查找操作

③Text 组件还支持恢复和撤销的操作

自定义撤销操作


①判断内容是否发生变化

比如说做一个笔记本 (.txt 的那个记事本) 程序,或者重新做一个 IDLE。它们都有输入框,有输入框当程序在关闭的时候应该自动检测内容是否发生改变,如果有改变但用户并没有保存的时候,应该提醒用户是否保存。

我们这个例子是通过验证文本的 md5 摘要来判断文本是否发生改变。

from tkinter import *
import hashlib  #获得md5的值要用该库

root = Tk()

text = Text(root, width=30, height=5)
text.pack()

text.insert(INSERT, 'I love study')
contents = text.get('1.0', END)

def getSig(contents):
    n = hashlib.md5(contents.encode())
    return n.digest()  #只需要得到md5值n的简单摘要即可

sig = getSig(contents)

def check():  #点下检查的时候,会重新获得一次contents的内容,将原来的contents进行一个md5的hash,获得它的md5的值;同时也获得之后contents的md5的值,将两者进行对比。由于一个内容只能产生一个唯一的散列,因此若不一样,就说明内容发生了改变。
    contents = text.get('1.0', END)
    if sig != getSig(contents):
        print("内容发生变动")
    else:
        print("内容没有发生变动")

Button(root, text="检查", command=check).pack()

mainloop()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值