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_())

For install a new plugin just locate plugin descriptor

Screenshot 2

Test plugin action

Screenshot 1

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.0.3-py3.11.egg (53.6 kB view details)

Uploaded Source

yapsygui-1.0.3-py3-none-any.whl (22.1 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for yapsygui-1.0.3-py3.11.egg
Algorithm Hash digest
SHA256 683230d7cff120694bd405c2f5fcbf1aea5995e66f6456674c9185ce505e0763
MD5 578e751855c65cbc5f89401979f24f8b
BLAKE2b-256 49ae1f92842c24f2b97249befb4709c65a7b14e26c03a44a91b7ef2d5627ec70

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yapsygui-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 22.1 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.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 49a5647d4cbf6966ec279dcad9f29eae6c45f859f075489c00acf4f9411a434f
MD5 ff2219b5d49b1e58c964068156280382
BLAKE2b-256 64674ae4df4f487a3bae91ef127585ac6896289321a736889437ff4506993daf

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