Untitled

 avatar
unknown
plain_text
5 months ago
2.5 kB
2
Indexable
import tkinter as tk
from tkinter import END

class KeywordHighlighterApp:
    def __init__(self, root):
        self.root = root
        self.root.title("Kiểm tra Keyword và Tô màu")

        # Tạo ô Text 1 để nhập đoạn văn bản
        tk.Label(root, text="Text 1 (đoạn văn bản):").pack()
        self.text1 = tk.Text(root, wrap="word", width=60, height=10, font=("Arial", 12))
        self.text1.pack(pady=10)

        # Tạo ô Text 2 để nhập keyword, các keyword cách nhau bởi dấu phẩy
        tk.Label(root, text="Text 2 (keywords, cách nhau bằng dấu phẩy):").pack()
        self.text2 = tk.Text(root, wrap="word", width=60, height=5, font=("Arial", 12))
        self.text2.pack(pady=10)

        # Nút kiểm tra keyword
        self.check_button = tk.Button(root, text="Kiểm tra Keywords", command=self.check_keywords)
        self.check_button.pack(pady=10)

    def check_keywords(self):
        # Xóa tất cả highlight cũ trong text2
        self.text2.tag_remove("not_found", "1.0", END)

        # Lấy nội dung từ text1 và text2
        text1_content = self.text1.get("1.0", END).lower()
        text2_content = self.text2.get("1.0", END).strip()

        # Tách keywords trong text2 dựa trên dấu phẩy
        keywords = [keyword.strip() for keyword in text2_content.split(",")]

        # Kiểm tra từng keyword có trong text1 hay không
        for keyword in keywords:
            if keyword and keyword.lower() not in text1_content:
                self.highlight_not_found_keyword(keyword)

    def highlight_not_found_keyword(self, keyword):
        # Tìm và highlight keyword trong text2 nếu không tìm thấy trong text1
        start_index = "1.0"
        while True:
            # Tìm vị trí keyword trong text2
            start_index = self.text2.search(keyword, start_index, stopindex=END, nocase=True)
            if not start_index:
                break

            # Tính toán vị trí kết thúc của keyword
            end_index = f"{start_index}+{len(keyword)}c"

            # Thêm tag để highlight từ khóa
            self.text2.tag_add("not_found", start_index, end_index)
            start_index = end_index

        # Định nghĩa màu sắc cho tag "not_found"
        self.text2.tag_config("not_found", background="yellow")

# Chạy ứng dụng
if __name__ == "__main__":
    root = tk.Tk()
    app = KeywordHighlighterApp(root)
    root.mainloop()
Editor is loading...
Leave a Comment