A GUI-based Python project generator for quickly creating new applications with a modern look and feel, powered by ttkbootstrap.
This tool was created to streamline the process of starting a new Python project, especially for simple GUI applications. It sets up a clean project structure, a virtual environment, and includes a theme engine out of the box, so you can focus on building your app's features.
- Features
- Prerequisites
- How to Use
- The Generated Project
- Contributing
- License
- Easy-to-Use GUI: Configure your new project through a simple and intuitive interface.
- Comprehensive Project Setup:
- Define your project's name, description, and output directory.
- Include author information (name and email) which is automatically added to the
pyproject.tomlandLICENSEfiles.
- Customization:
- Icon Support: Automatically convert an image (
.png,.jpg, etc.) into a.icofile for your application's icon. - Theme Engine: Select from various light and dark themes from
ttkbootstrap. The generated project includes the same theme selection capability, and remembers your choice.
- Icon Support: Automatically convert an image (
- Technical Foundation:
- Python Version: Choose the target Python version for your project (supports 3.9 - 3.12).
- Virtual Environment: Automatically creates a Python virtual environment using
uvfor fast and reliable dependency management. - Git Initialization: Initializes a new Git repository in your project folder by default (this can be disabled).
- Complete Project Template:
- A well-organized directory structure.
pyproject.tomlpre-configured with necessary dependencies likettkbootstrap.- A professional
README.mdtemplate. - Cross-platform run scripts (
run.batfor Windows,run.shfor Unix-like systems). - Standard
.gitignoreandLICENSEfiles.
- Configuration Persistence: All settings, including output path, author info, and theme selection, are saved to a local config file. Your preferences are remembered for the next time you run the generator.
-
Run the
TemplateProjectapplication usingrun.baton Windows orrun.shon Unix-like systems. -
On the Home tab, fill in your project details:
- Project Name: A name for your project (e.g.,
MyCoolApp). It's best to use a name that is friendly for folder and repository naming. - Project Description: A short description for your
README.md. - Project Directory: The parent folder where your new project folder will be created.
- Icon Path (Optional): Path to an image to use as the app icon.
- Author Name & Email (Optional): For the
pyproject.tomlandLICENSEfiles.
- Project Name: A name for your project (e.g.,
-
Switch to the Settings tab to configure the environment:
- Select the desired Python Version.
- Toggle Initialize Git Repository if needed.
- You can also change the theme of the generator app itself.
-
Click Generate Project. A confirmation will appear once it's done.
-
That's it! Your new project is ready for you to start coding.
Your new project is created with a clean, ready-to-use structure. It includes a sample application window with "Home" and "Settings" tabs.
- The Home tab is where you'll add your application's main functionality.
- The Settings tab comes with the same theme selector, allowing users of your app to change its appearance. The chosen theme is saved and reapplied on the next launch.
- Python 3.9 or newer.
- An active internet connection is required for the first run to download the necessary dependencies.
- The provided
runscripts handle the automatic installation ofuvand other packages into a local virtual environment.
TemplateProject/
├── src/template_project/ # Main application source
│ ├── generators/ # Template processing and project generation
│ ├── gui/ # User interface components
│ └── templates/ # Jinja2 templates for generated projects
├── docs/ # Project documentation and implementation notes
│ ├── README.md # Documentation index
│ └── *.md # Implementation summaries and history
├── dev/ # Development and testing files
│ ├── README.md # Development folder documentation
│ └── test_*.py # Test scripts (excluded from distribution)
├── run.bat / run.sh # Cross-platform startup scripts
└── pyproject.toml # Project configuration
The project follows standard Python project organization:
docs/- Implementation documentation and project historydev/- Development utilities and tests (excluded from distribution)
Contributions are welcome! Please see the CONTRIBUTING.md file for guidelines on how to contribute to this project.
This project is licensed under the MIT License. The generated projects also include an MIT License by default.