Gooey
lastmod 2026-02-12created 2020-05-075 edits
(For the GUI toolkit that uses pyglet, see Glooey.)
Turn (almost) any Python 2 or 3 Console Program into a GUI application with one line
Converts command-line programs into GUI applications
About
- Converting Python console programs into GUI applications with Gooey
- Gooey is a tool that converts Python 3 console programs into user-friendly GUI applications.
- It provides a GUI instead of a command prompt, making programs easier to use and nicer looking.
- Useful when building scripts for non-programmers or utilities for tasks such as moving data.
- Gooey attaches to your code by adding a decorator to the method that holds the argparse declarations.
- At run time, it parses the Python script, extracts the ArgumentParser references, and assembles the GUI.
- GooeyParser gives finer control over the widgets shown in the GUI.
- Gooey can be easily translated into many languages and currently ships with more than 18 translations.
- Supporting a new language is as simple as adding key/value pairs to the gooey/languages/ directory.
- Gooey's overall look and feel can be customized by passing arguments to the decorator.
- Many components can be customized, including encoding, language, startup size, and font settings.
- Gooey offers flexible layouts through a few simple customizations.
- Provides various layout options such as whether to show a sidebar and whether to use tab groups.
- Gooey offers several display modes that adapt the layout to the content type and the user's experience level.
- Advanced, basic, and no-config modes let it provide GUIs tailored to different user needs.
- Custom menu groups and items can be added to Gooey's menu bar.
- Supports various types of menu options to provide program information, message dialogs, links, and more.
- Before passing user input to the program, Gooey can optionally run a pre-validation to check that all arguments pass validation.
- Gooey provides lifecycle hooks for taking additional follow-up actions on a program's successful run or failure and for controlling the current state of the UI.
- Gooey can update the state of the progress bar based on textual progress updates.
- Progress can be reported to Gooey through regular expressions and custom evaluation expressions.
- Gooey lets you replace the default icons with custom images/icons.
- A custom image directory can be specified with the image_dir argument.
- Packaging Gooey as an executable is very easy; pyinstaller can bundle the application into a ready-to-run executable.