C NGUYÊN💗💗 :
import tkinter as tk
from tkinter import filedialog, messagebox
import customtkinter as ctk # Thư viện giao diện hiện đại
import os
# Cấu hình giao diện Dark Mode
ctk.set_appearance_mode("Dark")
ctk.set_default_color_theme("blue")
class HalokiETool(ctk.CTk):
def __init__(self):
super().__init__()
self.title("Haloki ETool")
self.geometry("600x450")
# --- Variables ---
self.input_file_path = tk.StringVar()
self.keyword = tk.StringVar()
# --- Layout ---
self.grid_columnconfigure(0, weight=1)
# Title
self.label_title = ctk.CTkLabel(self, text="HATOKI FLOOL - FILTER TOOL", font=ctk.CTkFont(size=20, weight="bold"))
self.label_title.pack(pady=20)
# Section 1: Chọn File
self.frame_file = ctk.CTkFrame(self)
self.frame_file.pack(padx=20, pady=10, fill="x")
self.btn_browse = ctk.CTkButton(self.frame_file, text="Chọn file .txt", command=self.browse_file)
self.btn_browse.pack(side="left", padx=10, pady=10)
self.entry_path = ctk.CTkEntry(self.frame_file, textvariable=self.input_file_path, width=350, placeholder_text="Đường dẫn file...")
self.entry_path.pack(side="left", padx=10, pady=10, expand=True, fill="x")
# Section 2: Nhập từ khóa
self.frame_search = ctk.CTkFrame(self)
self.frame_search.pack(padx=20, pady=10, fill="x")
self.entry_keyword = ctk.CTkEntry(self.frame_search, textvariable=self.keyword, placeholder_text="Nhập từ khóa cần tìm...")
self.entry_keyword.pack(side="left", padx=10, pady=10, expand=True, fill="x")
self.btn_find = ctk.CTkButton(self.frame_search, text="FIND", fg_color="#2ecc71", hover_color="#27ae60", command=self.process_filter)
self.btn_find.pack(side="left", padx=10, pady=10)
# Section 3: Progress Bar & Status
self.progress = ctk.CTkProgressBar(self)
self.progress.pack(padx=20, pady=20, fill="x")
self.progress.set(0)
self.label_status = ctk.CTkLabel(self, text="Sẵn sàng", font=ctk.CTkFont(size=12))
self.label_status.pack()
# Nút mở
2026-01-31 17:05:20