<>")def select_all():# 全选global textPadtextPad.tag_add("sel", "1.0", "end")def find(*agrs):# 查找栏上面的查找界面global textPadt = Toplevel(top)t.title("查找")t.geometry("260x60+200+250")# 图形用户界面的大小t.transient(top)Label(t, text="查找:").grid(row=0, column=0, sticky="e")v = StringVar()e = Entry(t, width=20, textvariable=v)e.grid(row=0, column=1, padx=2, pady=2, sticky="we")e.focus_set()c = IntVar()Checkbutton(t, text="不区分大小写", variable=c).grid(row=1, column=1, sticky='e')Button(t, text="查找所有", command=lambda: search(v.get(), c.get(), textPad, t, e)).grid\(row=0, column=2, sticky="e" + "w", padx=2, pady=2)# 图形界面中的按钮def close_search():# 函数内部定义函数 关闭查找textPad.tag_remove("match", "1.0", END)t.destroy()t.protocol("WM_DELETE_WINDOW", close_search)def mypopup(event):# 弹出菜单global editmenueditmenu.tk_popup(event.x_root, event.y_root)def search(needle, cssnstv, textPad, t, e):# 文章内部进行查找 匹配的函数textPad.tag_remove("match", "1.0", END)count = 0if needle:start = 1.0while True:pos = textPad.search(needle, start, nocase=cssnstv, stopindex=END)if not pos:breakstrlist = pos.split('.')# 分割字符串left = strlist[0]right = str(int(strlist[1]) + len(needle))lastpos = left + '.' + righttextPad.tag_add("match", pos, lastpos)count += 1start = lastpostextPad.tag_config('match', background="yellow")# 查找到的元素变为高亮的黄色突出显示e.focus_set()t.title(str(count) + "个被匹配")#def refresh():# 刷新函数global top, filenameif filename:top.title(os.path.basename(filename))else:top.title("记事本")top = Tk()# 新建图形用户界面(主界面)top.title("记事本")# 顶层标题top.geometry("640x480+500+200")# 界面大小menubar = Menu(top)# 文件功能# Menu类控件用来实现顶层/下拉/弹出菜单filemenu = Menu(top)# 创建一个顶级菜单# 通过add_command函数添加一个下拉的子菜单filemenu.add_command(label="新建", accelerator="Ctrl+N", command=new_file)# 创建一个下拉菜单“新建” , 然后将它添加到顶级菜单中 command绑定点击后调用的函数filemenu.add_command(label="打开", accelerator="Ctrl+O", command=open_file)filemenu.add_command(label="保存", accelerator="Ctrl+S", command=save)filemenu.add_command(label="另存为", accelerator="Ctrl+shift+s", command=save_as)filemenu.add_command(label="重命名", accelerator="Ctrl+R", command=rename_file)filemenu.add_command(label="删除", accelerator="Ctrl+D", command=delete)menubar.add_cascade(label="文件(F)", menu=filemenu)# 文件# 编辑功能editmenu = Menu(top)editmenu.add_command(label="撤销", accelerator="Ctrl+Z", command=undo)editmenu.add_command(label="重做", accelerator="Ctrl+Y", command=redo)editmenu.add_separator()# 分割线editmenu.add_command(label="剪切", accelerator="Ctrl+X", command=cut)editmenu.add_command(label="复制", accelerator="Ctrl+C", command=copy)editmenu.add_command(label="粘贴", accelerator="Ctrl+V", command=paste)editmenu.add_separator()editmenu.add_command(label="查找", accelerator="Ctrl+F", command=find)editmenu.add_command(label="全选", accelerator="Ctrl+A", command=select_all)menubar.add_cascade(label="编辑(E)", menu=editmenu)# 编辑# 关于 功能aboutmenu = Menu(top)aboutmenu.add_command(label="作者", command=author)aboutmenu.add_command(label="版权", command=power)aboutmenu.add_command(label="版本", command=edition)#menubar.add_cascade(label="关于(A)", menu=aboutmenu)# 关于top['menu'] = menubarshortcutbar = Frame(top, height=25, bg='Silver')shortcutbar.pack(expand=NO, fill=X)textPad = Text(top, undo=True)textPad.pack(expand=YES, fill=BOTH)scroll = Scrollbar(textPad)textPad.config(yscrollcommand=scroll.set)scroll.config(command=textPad.yview)scroll.pack(side=RIGHT, fill=Y)# 热键绑定考虑大小写textPad.bind("
推荐阅读
-
-
荣耀30与华为P40怎么选?你得看懂看华为与荣耀的品牌差异
-
有人有坐邮轮出行的经验嘛这个貌似逼格太高,周围的朋友都没有去过,想给女朋友一个惊喜,求推荐线路
-
春天在田野里,田野里的什么?在田野里的春天是什么样子的
-
念寒娱评|有可能遇到真爱,也有可能会跟王宝强复婚,马蓉突然连发三个爱心
-
掘金|输掉一场不用慌!掘金还手握三优势,应对得当翻盘湖人不是没机会
-
21Tech|12来了!但苹果却尾盘跳水,原因或许是这个,首款5G苹果机iPhone
-
『空气』黑龙江省解读“这波重污染咋来的?” 下周二或迎好空气
-
3DM游戏网|尾田也要滑铁卢?正版3D动作手游《航海王热血航线》发布最难入团测试
-
紧身|路人街拍:好看的紧身牛仔裤小姐姐,尽显女性的曼妙身姿!
-
-
中国科学院|宁波材料所在无机钙钛矿电池研究中获进展
-
穿搭|新发现这轻奢风女装穿搭,秀场款的设计感,小众不失优雅
-
海外网|《日本之耻》当事人起诉网络诽谤者:在我们这一代终结网络暴力
-
-
全民车市|直接躺在地上,女司机做法让人气愤,小区保安阻拦女司机
-
-
杭州|控制风险考虑,多家银行暂停账户铂金、钯金开仓交易
-
-
雪纺裙|真不敢相信谭松韵已经30多岁了,面对“真实镜头”,也很少女