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.1.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.1-py3-none-any.whl (6.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: jsontoqt-0.4.1.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.1.tar.gz
Algorithm Hash digest
SHA256 c891f76f9ad87427b241f333a38959639ae55d5a4bab077bd421b2c404a02514
MD5 e4e34a6ce0a05b3760468f8b22ca38e1
BLAKE2b-256 5552469d093a1190e133f9d6e8385fe95dc684f9d857acbbf8f2ecdafbcf36c7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: jsontoqt-0.4.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5cfb952c8577eda5f1896e80e55e24496986ebf672823e92bce45b38b9967d14
MD5 bc393d1e75de18f063c2ac1833976174
BLAKE2b-256 3101d7f2b4eefa45952f79cac7bfcc99665cdde9af651523888ab49641b8d9ba

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