Skip to main content

coverage

Goals

Doxyqml lets you use Doxygen to document your QML classes.

It integrates as a Doxygen input filter to turn .qml files into pseudo-C++ which Doxygen can then use to generate documentation.

Installing

Doxyqml uses the standard Python setup tools, so you can install it with pip:

pip3 install doxyqml

or manually with:

python3 setup.py install

Telling Doxygen to use Doxyqml

To tell Doxygen about Doxyqml you must make a few changes to your Doxygen configuration file.

  1. Add the .qml extension to the FILTER_PATTERNS key:

     FILTER_PATTERNS = *.qml=doxyqml
    

    Note: on Windows Doxyqml installs itself in the Scripts folder of your Python installation. If this folder is not in the PATH, either add it or use the full path to Doxyqml here (but that is less portable across machines)

  2. Add the .qml extension to FILE_PATTERNS:

     FILE_PATTERNS = *.qml
    
  3. Since Doxygen 1.8.8, you must also add the .qml extension to EXTENSION_MAPPING:

     EXTENSION_MAPPING = qml=C++
    

Documenting types

QML is partially-typed: functions are untyped, properties and signals are. Doxyqml provides a way to define types when they are missing or not precise enough.

Functions

Functions in QML are untyped, but you can define types in the documentation like this:

/**
 * Create a user
 * @param type:string firstname User firstname
 * @param type:string lastname User lastname
 * @param type:int User age
 * @return type:User The User object
 */
function createUser(firstname, lastname, age);

Properties

QML properties are typed, so Doxyqml uses them by default. You can nevertheless overwrite the type using the same type:<name> syntax. This is useful to document property aliases:

/** type:string The user lastname */
property alias lastname: someObject.text

Signals

QML signals are typed, so there is no need to use the type:<name> syntax to document their parameters. Using type:<name> syntax in signal documentation will not work: Doxyqml won't strip it out and Doxygen will confuse it with the parameter name.

/**
 * User just logged in
 * @param user The user which logged in
 */
signal loggedIn(User user)

Extracting internal elements

QML elements with an id are exported as private member variables. If you set the EXTRACT_ALL and EXTRACT_PRIVATE Doxygen keys to YES, then these elements will be visible in the generated documentation.

Metadata

Release files for doxyqml 0.6.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for doxyqml 0.6.0
File Size Uploaded Provenance Actions
doxyqml-0.6.0.tar.gz 31.4 kB Without provenance Details for doxyqml-0.6.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for doxyqml 0.6.0
File Interpreter ABI Platform Actions
doxyqml-0.6.0-py3-none-any.whl Python 3 none any Details for doxyqml-0.6.0-py3-none-any.whl

Total release size: 45.6 kB

Release files / doxyqml-0.6.0.tar.gz

Download URL doxyqml-0.6.0.tar.gz
Size 31.4 kB
Tags Source
SHA-256 checksum
How to use checksums
80133a3e3290eb319f8b5b64a3d59f5fad078f3dfde8f6cfff5a2ac425743778
BLAKE2b-256 checksum
How to use checksums
bf5ca8a1552bdd6b9e0f7371497b7ed3b06b73b2e1a207d9ee57b8ae2d45aa36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Release files / doxyqml-0.6.0-py3-none-any.whl

Download URL doxyqml-0.6.0-py3-none-any.whl
Size 14.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ac40e302a65684b43d81093ba1c4bee07f7dacff5586d26afc05f36158907c66
BLAKE2b-256 checksum
How to use checksums
933b2842835b972add2087a8f2a6cdea1d9afed9e85276f420e1e5083c040a8f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.14.8

Security for doxyqml 0.6.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page