import tkinter as tk
from tkinter import messagebox
class App:
def __init__(self, root):
self.root = root
self.root.title("Текстовый помощник")
self.root.geometry("400x300")
self.root.resizable(False, False)
main_frame = tk.Frame(root, bg="white", padx=20, pady=20)
main_frame.pack(expand=True, fill="both")
self.entry = tk.Entry(main_frame, font=("Arial", 12), fg="grey")
self.entry.insert(0, "Введите текст...")
self.entry.bind("<FocusIn>", self._clear_placeholder)
self.entry.bind("<FocusOut>", self._add_placeholder)
self.entry.pack(pady=(0, 20), ipady=5, fill="x")
btn_frame = tk.Frame(main_frame, bg="white")
btn_frame.pack()
process_btn = tk.Button(
btn_frame,
text="Обработать",
width=12,
command=self.process_text,
bg="#6A5ACD",
fg="white",
activebackground="#483D8B",
relief="flat"
)
process_btn.grid(row=0, column=0, padx=5)
clear_btn = tk.Button(
btn_frame,
text="Очистить",
width=12,
command=self.clear_all,
bg="#B22222",
fg="white",
activebackground="#8B0000",
relief="flat"
)
clear_btn.grid(row=0, column=1, padx=5)
def _clear_placeholder(self, event):
if self.entry.get() == "Введите текст...":
self.entry.delete(0, tk.END)
self.entry.config(fg="black")
def _add_placeholder(self, event):
if not self.entry.get():
self.entry.insert(0, "Введите текст...")
self.entry.config(fg="grey")
def process_text(self):
user_input = self.entry.get()
if not user_input or user_input == "Введите текст...":
messagebox.showwarning("Пустое поле", "Пожалуйста, введите какой-нибудь текст.")
return
result = ''.join([char.lower() if char.isupper() else char.upper() for char in user_input])
messagebox.showinfo("Результат", f"Инвертированный регистр:\n{result}")
def clear_all(self):
self.entry.delete(0, tk.END)
self._add_placeholder(None)
if __name__ == "__main__":
root = tk.Tk()
try:
root.iconbitmap("app_icon.ico")
except Exception:
pass
app = App(root)
root.mainloop()