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

pip install yapsygui

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

Uploaded Source

yapsygui-1.1.1-py3-none-any.whl (26.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: yapsygui-1.1.1-py3.11.egg
  • Upload date:
  • Size: 69.4 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.1-py3.11.egg
Algorithm Hash digest
SHA256 ae13ad8403bd718ab38cb14c32a05bc1bf49c57ecdbb7c610e713c23aaffcda3
MD5 1b5b821987c43e2b593be6898cf4859b
BLAKE2b-256 998c842545dba7db4cb7250eab2337f8acdc3b6e486988df19bdd0df4fb1df03

See more details on using hashes here.

File details

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

File metadata

  • Download URL: yapsygui-1.1.1-py3-none-any.whl
  • Upload date:
  • Size: 26.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 a7c39ae487d21a2c503d82318c4197008230ff5aa72f231505371de861f9c40e
MD5 e4a52b2cd5d2341435cd285ae4d0dcd7
BLAKE2b-256 f35d2ce5702d7b7c712654951ee18676f49689d82741898e366d73ec5521fec4

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