Skip to main content

A lightweight, themeable boilerplate for creating tab-based PyQt applications.

Project description

ingot Icon
ingot

GitHub: Repo License: MIT PyPI version Downloads

A lightweight, themeable boilerplate for creating tab-based PyQt applications.

ingot is a Python library designed to accelerate desktop application development by providing a self-configuring main window, an intelligent SASS-based theming engine, a data-driven menu bar, and a flexible layout system.

🚦 Getting Started

Installation

uv add ingot

Quick Start

Here's a minimal example to get you started:

# your_project/main.py
import sys
from PyQt6.QtWidgets import QApplication, QLabel
from ingot.app import IngotApp
from ingot.views.base import BaseView

# 1. Define your application's configuration
APP_CONFIG = {
    "title": "My Awesome Ingot App",
    "icon": "img.my_icon"  # A rune-lib friendly path
}

# 2. Define your menu structure
MENU_CONFIG = {
    "File": [
        {"name": "Exit", "shortcut": "Esc", "function": sys.exit}
    ],
    "Help": [
        {"name": "About", "function": lambda: print("About This App!")}
    ]
}

# 3. Define the content for your tabs
class MyCustomView(BaseView):
    def __init__(self):
        super().__init__()
        self.layout().addWidget(QLabel("This is my application's content!"))

# 4. Launch the app
def main():
    app = QApplication(sys.argv)
    
    main_window = IngotApp(view_factory=MyCustomView, config=APP_CONFIG)
    main_window.set_menu(MENU_CONFIG)

    main_window.show()
    sys.exit(app.exec())

if __name__ == "__main__":
    main()

📄 License

This project is licensed under the MIT License. See the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ingot-0.0.1.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ingot-0.0.1-py3-none-any.whl (27.4 kB view details)

Uploaded Python 3

File details

Details for the file ingot-0.0.1.tar.gz.

File metadata

  • Download URL: ingot-0.0.1.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ingot-0.0.1.tar.gz
Algorithm Hash digest
SHA256 99f2a4e0b6b8ac0c21a670710c911c68e285ed66582bd09d796af5181699a046
MD5 26d58877fc90ccf548d3d4572ae42075
BLAKE2b-256 58b5ed42b785221eb9c5173d8561a4c96b14e98462213fe74a671e292da71020

See more details on using hashes here.

File details

Details for the file ingot-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: ingot-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 27.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.2 {"installer":{"name":"uv","version":"0.10.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"NixOS","version":"25.11","id":"xantusia","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ingot-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c691813aa9221e27b4ac62ed0f38685ff7fe0a18b1d1a870a2f9a86f303e2c46
MD5 3e131a6b749c9a0f8957b12fefc4ba0e
BLAKE2b-256 597fd45817d04a0c06e6dd129c304a8a0786936c01b6bc281a2e06ce3eae4f1b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page