Python自制文本编辑器。 随便写的半成品
from tkinter import *
from tkinter import filedialog, messagebox
class FindWindow:
def __init__(self, parent):
self.parent = parent
self.find_window = Toplevel(parent)
self.find_window.title("Find")
self.find_window.geometry("300x100")
# 创建查找标签和输入框
self.find_label = Label(self.find_window, text="Find:")
self.find_label.grid(row=0, column=0, padx=5, pady=5)
self.find_entry = Entry(self.find_window)
self.find_entry.grid(row=0, column=1, padx=5, pady=5)
# 创建查找按钮
self.find_button = Button(self.find_window, text="Find", command=self.find_text)
self.find_button.grid(row=0, column=2, padx=5, pady=5)
def find_text(self):
"""Find the specified text in the text area."""
# 获取要查找的文本
search_text = self.find_entry.get()
if search_text:
# 开始查找
start_index = "1.0"
while True:
# 从当前位置开始搜索,直到找到目标文本或搜索到文本末尾
start_index = self.parent.text_area.search(search_text, start_index, stopindex=END)
if not start_index:
# 如果没有找到目标文本,弹出提示框
messagebox.showinfo("Find", "No more occurrences found.")
break
else:
# 如果找到了目标文本,选中它并将焦点设置在找到的文本上
end_index = f"{start_index}+{len(search_text)}c"
self.parent.text_area.tag_add(SEL, start_index, end_index)
self.parent.text_area.mark_set(INSERT, start_index)
self.parent.text_area.see(INSERT)
# 更新起始位置,以便继续搜索下一个目标文本
start_index = end_index
else:
# 如果未输入查找文本,弹出提示框
messagebox.showwarning("Find", "Please enter text to find.")
class Main:
def __init__(self):
self.root = Tk()
self.root.title('TkNotepad - Untitled')
self.root.geometry('720x500')
self.current_file = None
find_window = Find