Name | qt-ingot JSON |
Version |
0.0.2
JSON |
| download |
home_page | None |
Summary | A lightweight, themeable boilerplate for creating tab-based PyQt applications. |
upload_time | 2025-10-19 02:39:23 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.12 |
license | MIT |
keywords |
gui
pyqt
pyqt6
qt
scaffolding
template
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
<h1 align="center">
<img src="https://raw.githubusercontent.com/Yrrrrrf/qt-ingot/main/resources/img/template.png" alt="qt-ingot Icon" width="128" height="128">
<div align="center">qt-ingot</div>
</h1>
<div align="center">
[](https://github.com/Yrrrrrf/qt-ingot)
[](./LICENSE)
[](https://pypi.org/project/qt-ingot/)
[](https://pypi.org/project/qt-ingot/)
[](https://github.com/Yrrrrrf/qt-ingot/releases)
</div>
> A lightweight, themeable boilerplate for creating tab-based PyQt applications.
`qt-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
```bash
uv add qt-ingot
```
#### Quick Start
Here's a minimal example to get you started:
```python
# 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](./LICENSE) file for details.
Raw data
{
"_id": null,
"home_page": null,
"name": "qt-ingot",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.12",
"maintainer_email": null,
"keywords": "gui, pyqt, pyqt6, qt, scaffolding, template",
"author": null,
"author_email": "Fernando Bryan Reza Campos <fer.rezac@outlook.com>",
"download_url": "https://files.pythonhosted.org/packages/52/3b/738ed7117ff50853c91b51ecd432a093141cf637c6df38a440fbb3351328/qt_ingot-0.0.2.tar.gz",
"platform": null,
"description": "<h1 align=\"center\">\n <img src=\"https://raw.githubusercontent.com/Yrrrrrf/qt-ingot/main/resources/img/template.png\" alt=\"qt-ingot Icon\" width=\"128\" height=\"128\">\n <div align=\"center\">qt-ingot</div>\n</h1>\n\n<div align=\"center\">\n\n[](https://github.com/Yrrrrrf/qt-ingot)\n[](./LICENSE)\n[](https://pypi.org/project/qt-ingot/)\n[](https://pypi.org/project/qt-ingot/)\n[](https://github.com/Yrrrrrf/qt-ingot/releases)\n\n</div>\n\n> A lightweight, themeable boilerplate for creating tab-based PyQt applications.\n\n`qt-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.\n\n## \ud83d\udea6 Getting Started\n\n### Installation\n\n```bash\nuv add qt-ingot\n```\n\n#### Quick Start\n\nHere's a minimal example to get you started:\n\n```python\n# your_project/main.py\nimport sys\nfrom PyQt6.QtWidgets import QApplication, QLabel\nfrom ingot.app import IngotApp\nfrom ingot.views.base import BaseView\n\n# 1. Define your application's configuration\nAPP_CONFIG = {\n \"title\": \"My Awesome Ingot App\",\n \"icon\": \"img.my_icon\" # A rune-lib friendly path\n}\n\n# 2. Define your menu structure\nMENU_CONFIG = {\n \"File\": [\n {\"name\": \"Exit\", \"shortcut\": \"Esc\", \"function\": sys.exit}\n ],\n \"Help\": [\n {\"name\": \"About\", \"function\": lambda: print(\"About This App!\")}\n ]\n}\n\n# 3. Define the content for your tabs\nclass MyCustomView(BaseView):\n def __init__(self):\n super().__init__()\n self.layout().addWidget(QLabel(\"This is my application's content!\"))\n\n# 4. Launch the app\ndef main():\n app = QApplication(sys.argv)\n \n main_window = IngotApp(view_factory=MyCustomView, config=APP_CONFIG)\n main_window.set_menu(MENU_CONFIG)\n\n main_window.show()\n sys.exit(app.exec())\n\nif __name__ == \"__main__\":\n main()\n```\n\n## \ud83d\udcc4 License\n\nThis project is licensed under the **MIT License**. See the [LICENSE](./LICENSE) file for details.\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "A lightweight, themeable boilerplate for creating tab-based PyQt applications.",
"version": "0.0.2",
"project_urls": {
"Homepage": "https://github.com/Yrrrrrf/qt-ingot",
"Repository": "https://github.com/Yrrrrrf/qt-ingot"
},
"split_keywords": [
"gui",
" pyqt",
" pyqt6",
" qt",
" scaffolding",
" template"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "59f90ddaad7e6b779c4700d12bd5d4831dac54ff6afd99d1c9c86a4739fb464c",
"md5": "b9a9c51f29a98a0d31f6e4dc127400c0",
"sha256": "dc09bac6c5d3894a27dcfe94585864f5a284d96bb93313ebc8ef8ac1b2a1cdb7"
},
"downloads": -1,
"filename": "qt_ingot-0.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "b9a9c51f29a98a0d31f6e4dc127400c0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.12",
"size": 13783,
"upload_time": "2025-10-19T02:39:22",
"upload_time_iso_8601": "2025-10-19T02:39:22.269409Z",
"url": "https://files.pythonhosted.org/packages/59/f9/0ddaad7e6b779c4700d12bd5d4831dac54ff6afd99d1c9c86a4739fb464c/qt_ingot-0.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "523b738ed7117ff50853c91b51ecd432a093141cf637c6df38a440fbb3351328",
"md5": "0b0685159a4c6396baad74f872f0e98f",
"sha256": "fc18bbf3891e60ab425a51511b34522a937a0758c431354d811ef78cafe67c57"
},
"downloads": -1,
"filename": "qt_ingot-0.0.2.tar.gz",
"has_sig": false,
"md5_digest": "0b0685159a4c6396baad74f872f0e98f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.12",
"size": 29315,
"upload_time": "2025-10-19T02:39:23",
"upload_time_iso_8601": "2025-10-19T02:39:23.510617Z",
"url": "https://files.pythonhosted.org/packages/52/3b/738ed7117ff50853c91b51ecd432a093141cf637c6df38a440fbb3351328/qt_ingot-0.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-10-19 02:39:23",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "Yrrrrrf",
"github_project": "qt-ingot",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "qt-ingot"
}