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 import *
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__': 
    Core.init()
    Core.start()
    Core.term()

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

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

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

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

main.py:

from FloriaConsoleGUI import *
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__': 
    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.1.0.tar.gz (32.3 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.1.0-py3-none-any.whl (48.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for FloriaConsoleGUI-1.1.0.tar.gz
Algorithm Hash digest
SHA256 fb7d0194989fede7b99d94d6809d883fbc2f72070e5ffba7a3260f2b51fbcb6b
MD5 5e8899f99a65ee925e906b291b5e38db
BLAKE2b-256 438b618bea685864a04315442f2307dbf25c18924baae4261d99a1ff02592ee3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for FloriaConsoleGUI-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e0b04adfb8b5b6f0e0bb898f5b96ca435ab1bf8b09a46104bb3e9aa9ddd55605
MD5 4397ac2d41eaec8415c3fec4eae68a78
BLAKE2b-256 69b48d9c268fb018652a9b447595b06d8afcf59d6aeb6e2be37281a5e976c1a2

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