ingot
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.
Metadata
Release files for ingot 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ingot-0.0.1.tar.gz | 35.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| ingot-0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 63.2 kB
Release files / ingot-0.0.1.tar.gz
| Download URL | ingot-0.0.1.tar.gz |
|---|---|
| Size | 35.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
99f2a4e0b6b8ac0c21a670710c911c68e285ed66582bd09d796af5181699a046
|
|
BLAKE2b-256 checksum How to use checksums |
58b5ed42b785221eb9c5173d8561a4c96b14e98462213fe74a671e292da71020
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / ingot-0.0.1-py3-none-any.whl
| Download URL | ingot-0.0.1-py3-none-any.whl |
|---|---|
| Size | 27.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c691813aa9221e27b4ac62ed0f38685ff7fe0a18b1d1a870a2f9a86f303e2c46
|
|
BLAKE2b-256 checksum How to use checksums |
597fd45817d04a0c06e6dd129c304a8a0786936c01b6bc281a2e06ce3eae4f1b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|