Skip to main content

Convert JSON schemas into dynamic PySide6 GUI forms with no manual UI coding needed.

This project has been archived.

The maintainers of this project have marked this project as archived. No new releases are expected.

Project description

🧩 jsontoqt

jsontoqt is a PySide6-based form builder that automatically generates interactive Qt widgets from a JSON Schema. It supports nested objects, enums, repeatable sections, multi-selects, and more — all with minimal code.

✨ Features

  • ✅ Auto-generates PySide6 forms from JSON Schema
  • 🧠 Supports:
    • string, integer, number, boolean, and object types
    • enum values and external enum sources
    • Multi-select combo boxes via x-multiselect
    • Dynamic group sections via x-multiple-group
    • Default values and constraints (minimum, maximum, etc.)
  • 🧩 Clean widget registration and value extraction
  • 📦 Easy integration and customization

📦 Installation

Install from PyPI:

pip install jsontoqt

🚀 Usage Example

from jsontoqt import JsonForm
from PySide6.QtWidgets import QApplication

schema = {
    "title": "Example Form",
    "type": "object",
    "properties": {
        "name": { "type": "string", "title": "Full Name" },
        "age": { "type": "integer", "title": "Age", "minimum": 0 },
        "gender": {
            "type": "string",
            "title": "Gender",
            "enum": ["Male", "Female", "Other"]
        },
        "hobbies": {
            "type": "string",
            "title": "Hobbies",
            "enum": ["Reading", "Gaming", "Traveling", "Cooking"],
            "x-multiselect": True
        },
        "contact": {
            "type": "object",
            "title": "Contact Info",
            "properties": {
                "email": { "type": "string", "title": "Email" },
                "phone": { "type": "string", "title": "Phone" }
            }
        },
        "dynamic": {
            "type": "object",
            "title": "Dynamic Sections",
            "x-multiple-group": {
                "Address": {
                    "type": "object",
                    "properties": {
                        "street": { "type": "string", "title": "Street" },
                        "city": { "type": "string", "title": "City" }
                    }
                },
                "Contact": {
                    "type": "object",
                    "properties": {
                        "email": { "type": "string", "title": "Email" },
                        "phone": { "type": "string", "title": "Phone" }
                    }
                }
            }
        }
    }
}

app = QApplication([])
builder = JsonForm(schema)
form = builder.build_form()
form.show()

app.exec()

🛠 JSON Schema Extensions

  • x-multiselect: true: Enables multi-select combo boxes
  • x-enum-source: "<key>": Pulls enum values from external data
  • x-multiple-group: Allows adding repeatable groups of fields

🧪 Contribution

If you would like to contribute the JsonToQt project, submit an issue or open a PR on the Github!

📃 License

MIT License


Made with Python and PySide6

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

jsontoqt-0.4.0.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

jsontoqt-0.4.0-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

Details for the file jsontoqt-0.4.0.tar.gz.

File metadata

  • Download URL: jsontoqt-0.4.0.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for jsontoqt-0.4.0.tar.gz
Algorithm Hash digest
SHA256 00731081c519cd17e8d966dc71d961d7b7ed0b6de1d993c7aac067ce3ba5bfa1
MD5 b4b451bd9669ddb5aa1dac8112c41e94
BLAKE2b-256 036c2811178baa58c8a7c7dc040d1027aa32a07af7f7f135b6a71549ee22e0ed

See more details on using hashes here.

File details

Details for the file jsontoqt-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: jsontoqt-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 6.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.10.11

File hashes

Hashes for jsontoqt-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 93ddba61b18a76309fecc4f5d8dccec07ff5c39cde647f2c2029daffe065c940
MD5 4b3811f5f3ab29a2d720afc45c44051d
BLAKE2b-256 6d8b70f9b4ae9ca40b9b9d174ed8ff243a0c96078946767daa14d568d3eaff40

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