A simple example of how to put a big message on the screen. Useful for telling you a long running background job is done. ```py #!/usr/bin/env python3 prompt = r""" python tkinter command line display message in big text """ prompt = r""" It takes the message from the command line, uses a main() and argparse, and allows options to be configured by command line switches """ prompt = r""" It should allow pressing q or escape to exit. """ prompt = r""" It should join all arguments with a space (like echo does) """ import tkinter as tk from tkinter import font import argparse import sys def display_message(message, font_size, font_color, bg_color): root = tk.Tk() root.title("Message Display") root.configure(bg=bg_color) # Start with a centered window root.geometry("900x500") # Define the font custom_font = font.Font(family="Helvetica", size=font_size, weight="bold") # Create the label # 'wraplength' allows text to move to a new line if it's too wide label = tk.Label( root, text=message, font=custom_font, fg=font_color, bg=bg_color, wraplength=800, justify="center" ) label.pack(expand=True, fill="both") # Exit bindings root.bind("", lambda e: root.destroy()) root.bind("q", lambda e: root.destroy()) root.bind("Q", lambda e: root.destroy()) # Focus the window so keys work immediately root.focus_force() root.attributes('-topmost', True) root.mainloop() def main(): parser = argparse.ArgumentParser( description="Display a large text message. Joins all arguments like 'echo'." ) # Using nargs='+' collects all words into a list parser.add_argument("message", nargs="+", help="The text message to display") # Options parser.add_argument("-s", "--size", type=int, default=80, help="Font size (default: 80)") parser.add_argument("-f", "--fg", default="black", help="Text color (default: black)") parser.add_argument("-b", "--bg", default="white", help="Background color (default: white)") args = parser.parse_args() # Join the list of words into a single string full_message = " ".join(args.message) try: display_message(full_message, args.size, args.fg, args.bg) except tk.TclError as e: print(f"Error: Could not display window. {e}") sys.exit(1) if __name__ == "__main__": main() ```