Skip to main content

pyside6-scintilla

CI PyPI Downloads License: MIT Python versions

Permissively-licensed PySide6 bindings for the Scintilla code editor component.

View on PyPI · View on GitHub

Status

See GitHub Issues for what's done and what's next.

Why this exists

The standard way to use Scintilla from Python + Qt is QScintilla (Riverbank Computing) — but it's a PyQt6 binding, with no PySide6 equivalent. Like PyQt6, it's also GPLv3 or commercially licensed.

Scintilla itself is licensed under the Historical Permission Notice and Disclaimer — a permissive license with no copyleft. This project aims to expose that permissive core directly to PySide6 users.

Goals

pyside6-scintilla aims to be:

  • MIT licensed — usable in open-source or closed-source projects freely
  • PySide6 native — built with shiboken6, integrating naturally with PySide6 widgets
  • A faithful, low-level binding of Scintilla's ScintillaEditBase widget — not a reimplementation of QScintilla's higher-level API
  • Available as pre-built wheels for Linux (x86_64, aarch64), Windows (x86_64), and macOS (arm64, x86_64)
  • Not affiliated with Riverbank Computing or the QScintilla project

Installation

Install from PyPI:

pip install pyside6-scintilla

PySide6 6.10+ is installed automatically as a dependency; the wheels bundle everything else ScintillaEditBase needs at runtime.

To build from source instead (e.g. for development), see docs/build.md for prerequisites (Qt 6.10+ with Qt6Core5Compat, a C++17 compiler) and platform-specific setup.

examples/highlighting/lexilla_highlighting/ uses lexilla as a dev dependency, installed from PyPI like any other package.

Usage

from PySide6.QtWidgets import QApplication
from pyside6_scintilla import ScintillaEdit

app = QApplication([])
editor = ScintillaEdit()
editor.setText("hello, world")
editor.show()
app.exec()

ScintillaEdit exposes a typed method per Scintilla message (e.g. setText(), textLength(), gotoLine()) on top of ScintillaEditBase's raw .send()/.sends() message API — the same SCI_* messages as the C interface, not a QScintilla-style high-level API. See examples/simple_scintilla_edit/ for a complete example (line-number margin, "Go to Line", block selection/editing), or examples/simple_scintilla_base_edit/ for the lower-level send/sends API.

Versioning

Version numbers follow <Scintilla version>.<binding revision> — e.g. 5.6.3.0 is binding revision 0 for Scintilla 5.6.3. The binding revision increments for releases of this package that don't correspond to a new Scintilla version (bug fixes, new API surface, CI changes, etc.), and resets to 0 when Scintilla itself releases a new version.

Documentation

Doc Contents
docs/alternatives.md How this compares to Monaco-based Qt bindings and other line-numbers + block-edit widgets
docs/auditing.md How to verify the vendored Scintilla source matches upstream
docs/bindings.md How the shiboken6 bindings are built, generated files, and the Scintilla-update procedure
docs/build.md Build prerequisites, local build/rebuild, wheels, and publishing
docs/documenting.md How the docs site is built, and how to add or update a page
docs/specs/ Design specifications and action plans for in-progress and planned work
docs/specs/mission.md Project background, goals, and design decisions
docs/testpypi.md Setting up TestPyPI trusted publishing
examples/ Standalone example apps, including ones showing lexilla-py in use
GitHub Issues Planned and in-progress work
Project board Joint roadmap for pyside6-scintilla and lexilla-py; issues/PRs from both repos are auto-added

Development tools

tools/ holds development scripts, run with uv run python tools/<script>.py:

Script Purpose
generate_pyi.py Regenerates the .pyi type stub for _pyside6_scintilla
check_docs_sync.py Verifies shared content blocks stay in sync between README.md and docs/index.md
clean_window_corners.py One-off cleanup for Windows window screenshots used in docs

License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyside6_scintilla-5.6.3.6.tar.gz (2.3 MB view details)

Uploaded Source

Built Distributions

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

pyside6_scintilla-5.6.3.6-cp311-abi3-win_amd64.whl (1.4 MB view details)

Uploaded CPython 3.11+Windows x86-64

pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_38_aarch64.manylinux_2_39_aarch64.whl (1.3 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.38+ ARM64manylinux: glibc 2.39+ ARM64

pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_34_x86_64.whl (1.4 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ x86-64

pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11+macOS 13.0+ x86-64

pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11+macOS 13.0+ ARM64

File details

Details for the file pyside6_scintilla-5.6.3.6.tar.gz.

File metadata

  • Download URL: pyside6_scintilla-5.6.3.6.tar.gz
  • Upload date:
  • Size: 2.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyside6_scintilla-5.6.3.6.tar.gz
Algorithm Hash digest
SHA256 3ecbfe9100995057d2c704860f3eb92f0d3cdfa45769c240b6a5d175ba23e439
MD5 a7a9b1671e69fef6d952d70b367380fb
BLAKE2b-256 9246d4acc2a62976ebd780db5f4b3a41659aa3c61d6efa0f75712ee670f84381

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyside6_scintilla-5.6.3.6.tar.gz:

Publisher: publish.yml on borco/pyside6-scintilla

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyside6_scintilla-5.6.3.6-cp311-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyside6_scintilla-5.6.3.6-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 c98d403c1deb46675d23215037653346c9e4a18b0f2a12a44c686037ee1cdcf2
MD5 b667f0cbf57123b1bac71f63e8b10a35
BLAKE2b-256 4dc4d941534f578b2d2071fe8f10fbfdafabbd509e73cba82c727f5ada046fa1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyside6_scintilla-5.6.3.6-cp311-abi3-win_amd64.whl:

Publisher: publish.yml on borco/pyside6-scintilla

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_38_aarch64.manylinux_2_39_aarch64.whl.

File metadata

File hashes

Hashes for pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_38_aarch64.manylinux_2_39_aarch64.whl
Algorithm Hash digest
SHA256 7836e5dd70891dd1df6a1cfa00a30889969c3ad6a2d7a8fb62b950ff119b6576
MD5 d76f019ac23eacc4f6866d38b3197d09
BLAKE2b-256 1bb3d128be9af65e93a97c6690b2b1c1cb30fcefa3bda104c0a413f00cddf01b

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_38_aarch64.manylinux_2_39_aarch64.whl:

Publisher: publish.yml on borco/pyside6-scintilla

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 82eebc2bd508bb816a07ff724ee2221f4b6410785acfa00401dcf6e150e6e97b
MD5 822b0900277e1a9b3693544936894199
BLAKE2b-256 b86e44de0230949ed1ecb5f43d098c6c2efb6a62262dfd6bd7d73b1d930c2ac3

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyside6_scintilla-5.6.3.6-cp311-abi3-manylinux_2_34_x86_64.whl:

Publisher: publish.yml on borco/pyside6-scintilla

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 118af9054e3bbd2dee9fa5c646993ea1460261135dc856f8ef2270c581e67f68
MD5 116a95da76e3d45ef7260798df60ee8a
BLAKE2b-256 0498834aa618f710fa646b470452f84f2ed694a8667349b83c5290e61323306e

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_x86_64.whl:

Publisher: publish.yml on borco/pyside6-scintilla

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 86a4275342024e000d3387df0d5b91138ac67eac522cef5f6d6c4d829a532bb9
MD5 3dd5b30adede4e42de64ecd52bcd3087
BLAKE2b-256 5ebd2a703e740066952efdf27d63e5f6bc26ce5698c3b061dd473de7a49a580d

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyside6_scintilla-5.6.3.6-cp311-abi3-macosx_13_0_arm64.whl:

Publisher: publish.yml on borco/pyside6-scintilla

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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