Skip to main content

GUI for Yapsy plugin system

Project description

Yapsy QT GUI

Python plugin manager

This project is a GUI python plugin manager. Backend is implemented over Yapsy

Basic plugin structure:

plugin1.plugin
# Plugin descriptor file
[Core]
Name = Plugin Test
Module = plugin1

[Documentation]
Author = Leonel Hernandez
Version = 0.1
Website = https://github.com/leonelhs/
Description = This is a demo plugin
plugin1.py
# Plugin module file
from qtpy.QtWidgets import QPushButton
from yapsy.IPlugin import IPlugin


class PluginOne(IPlugin):

    def __init__(self):
        super().__init__()
        self.context = None
        self.name = "Plugin test-01"

    def action(self, context):
        self.context = context
        button = QPushButton(self.name)
        button.clicked.connect(self.task)
        context.layout().addWidget(button)

    def task(self):
        self.context.output.append("This is a text from plugin test-01")

Minimal Application

import sys
from qtpy import QtWidgets
from qtpy.QtWidgets import QWidget, QVBoxLayout, QPushButton, QTextBrowser
from yapsygui import DialogPlugins


def fetchPlugins(plugins):
    for plugin in plugins:
        plugin.plugin_object.action(win)


app = QtWidgets.QApplication()
win = QWidget(None)
win.setLayout(QVBoxLayout())
btn_manager = QPushButton("Show Manager")
win.layout().addWidget(btn_manager)

manager = DialogPlugins(win, "./plugins")
manager.connect(fetchPlugins)
manager.loadPlugins()

btn_manager.clicked.connect(manager.show)
win.output = QTextBrowser(win)
win.layout().addWidget(win.output)

win.show()
sys.exit(app.exec_())

Install

foo@bar:~$ pip install yapsygui
foo@bar:~$ yapsygui

For install a new plugin just locate plugin descriptor

Test plugin action

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

yapsygui-1.1.4-py3.11.egg (38.1 kB view details)

Uploaded Source

yapsygui-1.1.4-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file yapsygui-1.1.4-py3.11.egg.

File metadata

  • Download URL: yapsygui-1.1.4-py3.11.egg
  • Upload date:
  • Size: 38.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for yapsygui-1.1.4-py3.11.egg
Algorithm Hash digest
SHA256 318d6b8298bc0f23b75ecef7afdd250acbacb76a73db3b2d17f8ce562e53c0c9
MD5 3a75c5ddb57380dc8857cc1d49b808e7
BLAKE2b-256 1d0e2c7394e5a43fc98c21cbd0b260a124047a4326539c044e5895ea4c8e0e74

See more details on using hashes here.

File details

Details for the file yapsygui-1.1.4-py3-none-any.whl.

File metadata

  • Download URL: yapsygui-1.1.4-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for yapsygui-1.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2e1d7c58faa8fd7b9fd7de9acb0356283ba9fb185fe58924c847177c42f07e9e
MD5 caf57b0277cd6304babe7fb36f6c4bea
BLAKE2b-256 680f5d66da8db0fd8bcecd0b751f282b19dd21ce86bd49e3690a0b1ed0b707ab

See more details on using hashes here.

Supported by

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