Skip to main content

Framework for console GUI apps

Project description

Framework for console GUI apps

Установка

Установить через pip:

pip install FloriaConsoleGUI --upgrade

Или скачать исходный код из PyPi

Использование

Рекомендуется писать код только в самом python

Пример обычного использования:

main.py:

from random import random as rdf

from FloriaConsoleGUI.Core import Core
from FloriaConsoleGUI.GVars import GVars
from FloriaConsoleGUI.Graphic.Widgets import *
from FloriaConsoleGUI.Graphic.Windows import *
from FloriaConsoleGUI.Managers import *

@Core.init_all_event.dec
def init():
    WindowManager.openNewWindow(
        TitledWindow(
            size=(20, 10),
            frame=True,
            title=' Example ',
            
            widgets=[
                Label(
                    text='hello world!',
                    name='label'
                )
            ]
        )
    )

@Core.SimulationThread.sim_event.dec
def simulation():
    label: Label = Widget.getByName('label')
    if label is not None:
        label.text = f'{rdf():.4f}'


if __name__ == '__main__': 
    GVars.FPS = 30
    GVars.SPS = 30
    
    Core.init()
    
    Core.start()
    Core.term()

Однако, для удобства есть динамическое обновление:

  • .json - для древа
  • .py - для скриптов (не рекомендуется из-за специфики реализации)

Не обязательно использовать сразу оба

Пример с динамическим обновлением:

main.py:

from FloriaConsoleGUI.Core import Core
from FloriaConsoleGUI.GVars import GVars
from FloriaConsoleGUI.Managers import Parser


@Core.init_all_event.dec
def init():
    Core.addDynamicModule('dyn.py', 'dyn')
    Parser.setFile('./dyn.json')

@Core.SimulationThread.sim_event.dec
def simulation():
    Core.checkDynamicModules()
    Parser.checkUpdate()    


if __name__ == '__main__': 
    GVars.FPS = 30
    GVars.SPS = 30
    
    Core.init()
    
    Core.start()
    Core.term()

dyn.py:

from random import random as rdf

from FloriaConsoleGUI import *
from FloriaConsoleGUI.Graphic.Widgets import *


@Core.SimulationThread.sim_event.dec
def simulation():
    label: Label = Widget.getByName('label')
    if label is not None:
        label.text = f'{rdf():.4f}'

dyn.json:

[
    {
        "class": "TitledWindow",
        
        "size": [20, 10],
        "frame": true,
        "title": " Example ",

        "widgets": [
            {
                "class": "Label",
                "name": "label",

                "text": "hello world!"
            }
        ]
    }
]

Результат:

example window

Документация

На данный момент документация разрабатывается...

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

FloriaConsoleGUI-1.0.6.tar.gz (23.8 kB view details)

Uploaded Source

Built Distribution

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

FloriaConsoleGUI-1.0.6-py3-none-any.whl (35.3 kB view details)

Uploaded Python 3

File details

Details for the file FloriaConsoleGUI-1.0.6.tar.gz.

File metadata

  • Download URL: FloriaConsoleGUI-1.0.6.tar.gz
  • Upload date:
  • Size: 23.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.12.7

File hashes

Hashes for FloriaConsoleGUI-1.0.6.tar.gz
Algorithm Hash digest
SHA256 cd2fa816b2aa078c855eb87e1a43335e6f0b64f317445b9cfbb05d47aa6ccde8
MD5 d67b037276a03d63244ed9d81ef51ba2
BLAKE2b-256 7fc0179db56d0c8df9d4b68a35bf369ddfc432f7aa9fba4604fda2c6efa8b646

See more details on using hashes here.

File details

Details for the file FloriaConsoleGUI-1.0.6-py3-none-any.whl.

File metadata

File hashes

Hashes for FloriaConsoleGUI-1.0.6-py3-none-any.whl
Algorithm Hash digest
SHA256 61cfeacf7f46bcb78f5dfbb0e36a7067c6f8c6e97bb3bf865bb7dd93ca8f81e2
MD5 79eb8efce89b2c1ecb2cd7e9517cac06
BLAKE2b-256 e999e5ac93bbf5ad1ef242ff1aced9a2473a78b2d66f03188e1539f81d2c9723

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