Skip to content
/ uitk Public

A PySide2 dynamic UI loader and connection manager.

License

Notifications You must be signed in to change notification settings

m3trik/uitk

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

License: LGPL v3 Version

UITK: Dynamic UI Management for Python with qtpy

UITK is a comprehensive Python package designed to streamline the creation, management, and interaction of user interfaces (UIs) using Python3|qtpy. With a focus on versatility, UITK leverages a naming convention-based switchboard module to dynamically load UI files, register custom widgets, manage slots, styles, states, and facilitate interaction with widgets. The primary goal of UITK is to simplify the development process of complex UIs and enhance the efficiency of event handling.

Key Features

  • Dynamic UI file loading
  • Custom widget registration
  • Utility properties for MainWindow and child widget subclassing
  • Management of slot connections and event handling
  • Support for UI hierarchy navigation and submenus
  • Custom event behavior through UI tags
  • UI and slot history storage and retrieval
  • Widget syncing and state management.

Module Overview

Module Description
file_manager Allows for setting multiple locations for dynamic UI files, custom widgets, and slot modules.
switchboard Handles dynamic UI loading, assigns convenience properties, manages slot connections, syncs, saves, and restores widget states, etc.
events Manages event handling for dynamic UI widgets.
widgets A source directory for the custom widgets included with this package.

Installation:

Add the uitk folder to a directory on your python path, or install via pip in a command line window using:

python -m pip install uitk

Basic Example:

Create an instance of Switchboard to load and connect your dynamic ui.

from uitk import Switchboard
from uitk import example

sb = Switchboard(ui_location=example, slot_location=example.example_slots)
ui = sb.example  # Access the UI using its filename.

ui.set_attributes(WA_TranslucentBackground=True)  # Set properties using keyword arguments.
ui.set_flags(FramelessWindowHint=True, WindowStaysOnTopHint=True)
ui.set_style(theme="dark", style_class="translucentBgWithBorder")

print(repr(ui))
ui.show(pos="screen", app_exec=True)

Advanced Example:

https://github.com/m3trik/tentacle

About

A PySide2 dynamic UI loader and connection manager.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published