Skip to main content

Arceion Qt - A collection of Qt components

Project description

Arceion Logo

Arceion Qt

A professional collection of Qt components and framework for Python.

PyPI version Python versions License Code style: black


Arceion Qt is a comprehensive suite of UI components and a structured framework designed to accelerate the development of desktop applications using PyQt6. It provides a robust architecture for managing views, navigation, asynchronous tasks, and API interactions.

Key Features

  • Structured UI Framework: Decoupled Window and View architecture for clean application flow.
  • Advanced Icon System: Integrated Google Material Symbols support with customizable styles (Outlined, Rounded, Sharp).
  • Asynchronous Execution: Built-in ThreadPool and Worker system for responsive UIs.
  • API Controller: Simplified REST API interaction with automatic retry logic and authentication support.
  • ORM Integration: Ready-to-use SQLAlchemy-based database layer.
  • Theming & Styles: Flexible theme management and utility functions for CSS/QSS styling.
  • Logging: Integrated logging system for better debugging and monitoring.

Installation

Install Arceion Qt using pip:

pip install arceion-qt

Dependencies

  • PyQt6
  • SQLAlchemy
  • Requests
  • Cryptography
  • FontTools

Quick Start

1. Creating a Basic Window and View

from arceion.qt.core import Window, View
from PyQt6.QtWidgets import QLabel, QVBoxLayout

class MainView(View):
    def onCreate(self):
        layout = QVBoxLayout(self)
        layout.addWidget(QLabel("Hello from Arceion Qt!"))

    def onResume(self):
        print("View resumed")

    def onDestroy(self) -> bool:
        return super().onDestroy()

def main():
    import sys
    from PyQt6.QtWidgets import QApplication

    app = QApplication(sys.argv)
    window = Window()
    window.navigate(MainView)
    window.show()
    sys.exit(app.exec())

if __name__ == "__main__":
    main()

2. Using Icons

from arceion.qt.res import Icons
from PyQt6.QtWidgets import QPushButton

# Access material symbols easily
button = QPushButton()
button.setIcon(Icons.search.toPixmap(size=24, color="#FFFFFF"))

3. Background Tasks

from arceion.qt.thread import ThreadPool

def heavy_computation(data):
    # Perform long-running task
    return f"Processed {data}"

def on_finished(result):
    print(f"Task result: {result}")

ThreadPool.start(heavy_computation, "my data", callback=on_finished)

Documentation

For full documentation, please visit the Wiki.

Project Structure

  • arceion.qt.core: Core Window and View management.
  • arceion.qt.api: REST API client and controllers.
  • arceion.qt.db: Database and ORM utilities.
  • arceion.qt.res: Resource management (Icons, Themes, Colors).
  • arceion.qt.thread: Multithreading and worker pools.
  • arceion.qt.util: General purpose UI and stylesheet utilities.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

Distributed under a Proprietary License. See pyproject.toml for more information.


Built with ❤️ by Arceion

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

arceion_qt-0.1.0.tar.gz (37.7 MB view details)

Uploaded Source

Built Distribution

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

arceion_qt-0.1.0-py3-none-any.whl (38.0 MB view details)

Uploaded Python 3

File details

Details for the file arceion_qt-0.1.0.tar.gz.

File metadata

  • Download URL: arceion_qt-0.1.0.tar.gz
  • Upload date:
  • Size: 37.7 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for arceion_qt-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bbe6daa948f2374ec2b0a8bfd134a5a1737f52275aa1d8e477dae593b9dce97e
MD5 252f56ba66ce9942fb0c3cdd97c58e87
BLAKE2b-256 83755fb5a72c8ade087fa19f8846ec977d9685466fe25d2a549c6121384a3399

See more details on using hashes here.

File details

Details for the file arceion_qt-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: arceion_qt-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 38.0 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for arceion_qt-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e235bab2b26a7b92b3840bc9702e21c9769b5b5af210fb71237a4bd7058fa7b0
MD5 cb53ad2247abdad2c2c1f18a461a6b13
BLAKE2b-256 b3cb6f1de4e4bbb0efc48c119dad692ec14ee97c7daaa76d9099aada01cdf688

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