import tkinter as tk
from tkinter import Text
class FullScreenTextApp:
def __init__(self, root):
self.root = root
self.root.attributes(“-fullscreen”, True)
self.root.configure(bg=”black”)
self.root.bind(“
self.text_widget = Text(root, wrap=”word”, bg=”black”, fg=”white”, font=(“Arial”, 12))
self.text_widget.pack(expand=True, fill=”both”, padx=50, pady=50)
self.text_widget.bind(“
self.text_widget.bind(“
def adjust_font_size(self, event=None):
max_width = self.root.winfo_width() – 100
max_height = self.root.winfo_height() – 100
text_content = self.text_widget.get(“1.0”, “end”).strip()
if not text_content:
return
font_size = 12
test_font = (“Arial”, font_size)
while True:
self.text_widget.configure(font=test_font)
self.root.update_idletasks()
bbox = self.text_widget.bbox(“end-1c”)
if bbox and (bbox[2] < max_width and bbox[3] < max_height):
font_size += 2
test_font = ("Arial", font_size)
else:
break
self.text_widget.configure(font=("Arial", font_size - 2))
def paste_and_clear(self, event=None):
self.text_widget.delete("1.0", "end")
self.root.after(50, self.perform_paste)
return "break"
def perform_paste(self):
try:
clipboard_text = self.root.clipboard_get()
self.text_widget.insert("1.0", clipboard_text)
self.adjust_font_size()
except tk.TclError:
pass
def exit_fullscreen(self, event=None):
self.root.attributes("-fullscreen", False)
self.root.quit()
if __name__ == "__main__":
root = tk.Tk()
app = FullScreenTextApp(root)
root.mainloop()