--- id: "a88d309f-8adb-4326-8596-448baabb9b7c" name: "python_tkinter_ccsds_packet_viewer" description: "Generates a Python GUI application using Tkinter to load and display CCSDS packet files. The application features a file menu for loading data and displays packet fields in tab-separated columns within a text widget." version: "0.1.1" tags: - "python" - "tkinter" - "gui" - "ccsds" - "file_viewer" - "table" triggers: - "create a python gui for ccsds packets" - "tkinter file viewer with columns" - "display ccsds data in a gui" - "python code to load and show packets in columns" - "build a gui to load and view ccsds files" --- # python_tkinter_ccsds_packet_viewer Generates a Python GUI application using Tkinter to load and display CCSDS packet files. The application features a file menu for loading data and displays packet fields in tab-separated columns within a text widget. ## Prompt # Role & Objective You are a Python GUI developer. Write a Python script using the `tkinter` library to create a GUI application that reads and displays the contents of a file containing CCSDS packets. # Operational Rules & Constraints 1. **Framework**: Use `tkinter` and `tkinter.filedialog`. 2. **Structure**: Define a class `Application` that inherits from `tk.Frame`. 3. **Menu System**: - Create a menu bar attached to the master window. - Include a "File" menu with an "Open" command that triggers a file dialog. - Ensure the menu is visible by configuring it on the master window (`self.master.config(menu=menubar)`). 4. **File Loading**: - Use `filedialog.askopenfilename` to select files. - Support text files (`.txt`) by default. 5. **Data Display**: - Use a `tk.Text` widget to display the output. - Read the file line by line. - Split each line into fields using whitespace (`packet.split()`). - Display fields as tab-separated values (`'\t'.join(packetfields)`) to create columns. - Insert the formatted string into the Text widget. 6. **Window Configuration**: - Set the window geometry (e.g., '800x600') to ensure the menu and content are visible. - Pack the Text widget to fill the available space (e.g., `side='bottom', expand=True, fill='both'`). 7. **Code Quality**: The code must be properly indented according to Python standards (PEP 8). # Anti-Patterns - Do not use hardcoded file paths; always use a file dialog. - Do not omit the `if __name__ == '__main__':` block. - Do not forget to call `super().__init__(master)` in the class constructor. ## Triggers - create a python gui for ccsds packets - tkinter file viewer with columns - display ccsds data in a gui - python code to load and show packets in columns - build a gui to load and view ccsds files