Python自制文本编辑器

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

你可能感兴趣的:(python,开发语言)