Skip to main content

PySide2 configuration in yaml format providing the most simple script.

Project description

PyamlSide2(ぴゃむるさいどつー)

PyPI version

PySide2 configuration in yaml format providing the most simple script.

Requirements

  • yaml
  • PySide2

Installation

cd <path-to-ReadableWidgets>/PyamlSide2
pip install .

Demo

python3 examples/chaos.py

Tutorial

1. create drawio-xml

Open draw.io.


Put the Rounded Rectangle and add text.


+----------------------+

| widget:unique-label |

+----------------------+


  • widget : widget name pushbutton, label, ...
  • unique-label : Unique label (also treated as a Key in Python).

Don't use compression flag. (Please uncheck.)

2. 🏁 drawio-xml -> YAML & Python (simple conversion)

rw_gen_xml2all -i <input .xml> -o <output directory>

2-1. Generate YAML file from drawio-xml

Although it is possible to convert directly from drawio-xml, conversion to YAML is recommended for readability.

rw_gen_xml2yaml -i <input .xml> -o <output .yaml>

2-2. Generate Python file from YAML

Create a sample Python program from a YAML file.

rw_gen_yaml2py -i <input .yaml> -o <output .py>

3. Run example python template

python3 <output .py (3rd step)> <input .yaml (3rd step)>

Template

Previously (v0.3.2)

See examples/simple_gui.py.

import sys
import os

from pyamlside2.mainwindow import PyamlSide2Window
from PySide2.QtWidgets import QApplication

class MainWindow(pyamlside2Window):
    def __init__(self):
        self.number = 0
        yaml_path = os.path.join(os.path.dirname(__file__), "../yaml/chaos.yaml")
        super().__init__(yaml_path)
        # your code -------------------------
        # ************ #
        # -----------------------------------
        self.show()

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = MainWindow()
    sys.exit(app.exec_())

Test YAML 📝

pyamlside2_yaml is preview feature app.

pyamlside2_yaml <yaml-file-path or draw.io xml-file>
# pyamlside2_yaml PySide2/drawio_xml/example.xml

Elements (dev)

In yaml, you can add the following elements defined in PyQt.Widgets This may be added in the future.

  • pushbutton : definition of QPushButton
  • qlabel : definition of QLabel
  • qlcdnumber : definition of QLCDNumber
  • qprogressbar : definition of QProgressBar
  • qlineedit : definition of QLineEdit
  • qcheckbox : definition of QCheckbox
  • qslider : definition of QSlider
  • qspinbox : definition of QSpinBox
  • qcombobox : definition of QCombobox
  • image : definition of QLabel (using image path)
  • stylesheet : definition of Stylesheet (define as QLabel and setHidden=True)

YAML format

PyamlQt defines common elements for simplicity. Not all values need to be defined, but if not set, default values will be applied

WINDOW: # unique key (Define key)
  type: window
  x: 0
  y: 0
  width: 800
  height: 720
  title: "example"

slider2: # keyname
  type: qslider # QWidgets
  x_center: 500 # x center point
  y_center: 550 # y center point
  rect:
    width: 200 # QWidgets width
    height: 50 # QWidgets height
  max: 100 # QObject max value
  min: 0 # QObject min value
  default: 70 # QObject set default value
  text: "Slider" # Set Text
  style: # Setting style using stylesheet (css)
    font: 30px # font size
    color: #ff0000 # Color
    font-family: Ubuntu # font-family
  items: # Selectable items( Combobox's option )
    - a
    - b
    - c

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

pyamlside2-0.4.1.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

pyamlside2-0.4.1-py3-none-any.whl (24.8 kB view details)

Uploaded Python 3

File details

Details for the file pyamlside2-0.4.1.tar.gz.

File metadata

  • Download URL: pyamlside2-0.4.1.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for pyamlside2-0.4.1.tar.gz
Algorithm Hash digest
SHA256 617e0f05e5d72aac3f1c32479c2d3093fb99e474c2bbb29175021dd05a0255d1
MD5 6f10f360444905ef7b2839ab3548b65e
BLAKE2b-256 69269df9c23afbff9caff4049f11fc77bc5d9423dd8ae0c2530a009fdbb90df5

See more details on using hashes here.

File details

Details for the file pyamlside2-0.4.1-py3-none-any.whl.

File metadata

  • Download URL: pyamlside2-0.4.1-py3-none-any.whl
  • Upload date:
  • Size: 24.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.6

File hashes

Hashes for pyamlside2-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 db1daf2bbd7c4c18c07651b9221e6e9619117127b04b52573a78646c03e7e22f
MD5 fb83ba033b2d4be69c7afa058a37884d
BLAKE2b-256 a2e784ad102fef387ef1d1fc4638aa527a46d94dbb7ff8a3f3497e034377662a

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