|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
小弟笨拙,才学会tkinter的一点点技能,费了好大的功夫才做成这样
目前只是个极简的雏形,后续再优化和添加功能,还望大佬指点指点,提提建议 ,让我接着改进
不会做gif的动图,贴两张我自己测试的效果图
代码很少,就40行。
- from tkinter import *
- import re
- root = Tk()
- #设置正则窗口样式
- sb1 = Scrollbar(root)
- sb1.grid(row=0,column=1,sticky=NS)
- text1 = Text(root,width=100,height=8,yscrollcommand=sb1.set)
- text1.grid(row=0,column=0)
- sb1.config(command=text1.yview)
- #设置待匹配窗口样式
- sb2 = Scrollbar(root)
- sb2.grid(row=1,column=1,sticky=NS)
- text2 = Text(root,width=100,height=40,yscrollcommand=sb2.set)
- text2.grid(row=1,column=0,pady=0)
- sb2.config(command=text2.yview)
- #正则表达式窗口按键触发事件
- def text1_insert(event):
- text1_info = text1.get(1.0,END)
- text2_info = text2.get(1.0,END)
- text1_info = fr'{text1_info}'[:-1] #莫名其妙多了一个换行符,这里把它去掉
- text2.tag_delete("tag1")
- re_list = []
- try:
- for m in re.finditer(text1_info,text2_info):
- start = m.start()
- end = m.end()
- if start != end:
- re_list.append((start,end))
- except:
- pass
- if re_list:
- for n,m in re_list:
- text2.tag_add("tag1", f"1.0+{n}c", f"1.0+{m}c")
- text2.tag_config("tag1", background="yellow", foreground="red")
-
- text1.bind('<KeyRelease>',text1_insert)
- mainloop()
复制代码
既然来了就留个脚印再走哈 |
评分
-
查看全部评分
|