autoqt6


Nameautoqt6 JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://github.com/jrj99/autoqt6/
SummarySimplify pyqtProperty creation.
upload_time2025-01-23 19:39:52
maintainerNone
docs_urlNone
authorNaKyle Wright, Jared Jones
requires_python>=3.6
licenseNone
keywords pyqt pyqt6 pyqtproperty pyside6
VCS
bugtrack_url
requirements PySide6 PyQt6 setuptools wheel twine
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # autoqt
[![PyPI](https://badge.fury.io/py/autoqt.svg)](https://badge.fury.io/py/autoqt)
[![Build Status](https://semaphoreci.com/api/v1/chipolux/autoqt/branches/master/shields_badge.svg)](https://semaphoreci.com/chipolux/autoqt)

A simple single file module that makes setting up basic Qt properties a little
bit nicer without restricting you.

This is very useful if you have QObjects with many readonly properties and a
few special setters or state modifying slots.

Example:
```
from PyQt6.QtCore import pyqtSignal, pyqtSlot
from autoqt6 import AutoObject, AutoProp


class SomeObject(AutoObject):
    valuesChanged = pyqtSignal()

    aNumber = AutoProp(int, 'valuesChanged', '_aNumber')
    otherNumber = AutoProp(float, 'valuesChanged', '_otherNumber')
    aString = AutoProp(str, 'valuesChanged', '_aString', write=True)

    def __init__(self, parent=None):
        super().__init__(parent=parent)
        self._aNumber = 10
        self._otherNumber = 20
        self._aString = 'spam'

    @pyqtSlot()
    def incrementNumber(self):
        self._aNumber += 1
        self.valuesChanged.emit()

    @otherNumber.setter
    def otherNumber(self, value):
        self._otherNumber = value + 2
        self.valuesChanged.emit()


x = SomeObject()

print(x.aNumber)  # 10
x.aNumber = 10  # throws AttributeError, readonly property
x.incrementNumber()  # valuesChanged is emitted
print(x.aNumber)  # 11

print(x.otherNumber)  # 20
x.otherNumber = 40  #  otherNumber.setter called, valuesChanged is emitted
print(x.otherNumber)  # 42

print(x.aString)  # 'spam'
x.aString = 'ham'  # valuesChanged is emitted, writable property
print(x.aString)  # 'ham'
```



            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/jrj99/autoqt6/",
    "name": "autoqt6",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "PyQt, PyQt6, pyqtProperty, PySide6",
    "author": "NaKyle Wright, Jared Jones",
    "author_email": "jared.randall.jones@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/62/e2/3229b6734a3a009f2664a05b533bd78d3d506be7de0e1c49b178fb489ab9/autoqt6-0.0.7.tar.gz",
    "platform": null,
    "description": "# autoqt\n[![PyPI](https://badge.fury.io/py/autoqt.svg)](https://badge.fury.io/py/autoqt)\n[![Build Status](https://semaphoreci.com/api/v1/chipolux/autoqt/branches/master/shields_badge.svg)](https://semaphoreci.com/chipolux/autoqt)\n\nA simple single file module that makes setting up basic Qt properties a little\nbit nicer without restricting you.\n\nThis is very useful if you have QObjects with many readonly properties and a\nfew special setters or state modifying slots.\n\nExample:\n```\nfrom PyQt6.QtCore import pyqtSignal, pyqtSlot\nfrom autoqt6 import AutoObject, AutoProp\n\n\nclass SomeObject(AutoObject):\n    valuesChanged = pyqtSignal()\n\n    aNumber = AutoProp(int, 'valuesChanged', '_aNumber')\n    otherNumber = AutoProp(float, 'valuesChanged', '_otherNumber')\n    aString = AutoProp(str, 'valuesChanged', '_aString', write=True)\n\n    def __init__(self, parent=None):\n        super().__init__(parent=parent)\n        self._aNumber = 10\n        self._otherNumber = 20\n        self._aString = 'spam'\n\n    @pyqtSlot()\n    def incrementNumber(self):\n        self._aNumber += 1\n        self.valuesChanged.emit()\n\n    @otherNumber.setter\n    def otherNumber(self, value):\n        self._otherNumber = value + 2\n        self.valuesChanged.emit()\n\n\nx = SomeObject()\n\nprint(x.aNumber)  # 10\nx.aNumber = 10  # throws AttributeError, readonly property\nx.incrementNumber()  # valuesChanged is emitted\nprint(x.aNumber)  # 11\n\nprint(x.otherNumber)  # 20\nx.otherNumber = 40  #  otherNumber.setter called, valuesChanged is emitted\nprint(x.otherNumber)  # 42\n\nprint(x.aString)  # 'spam'\nx.aString = 'ham'  # valuesChanged is emitted, writable property\nprint(x.aString)  # 'ham'\n```\n\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Simplify pyqtProperty creation.",
    "version": "0.0.7",
    "project_urls": {
        "Homepage": "https://github.com/jrj99/autoqt6/"
    },
    "split_keywords": [
        "pyqt",
        " pyqt6",
        " pyqtproperty",
        " pyside6"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b2d10ac3b9525e7db13e775a46d6c23271e1f7a30b389cb2b10e7dd52c7c64ab",
                "md5": "c970bae86965a1bb8c44acd3b18ce4b1",
                "sha256": "deb09e890c4133531fbe9e7d779f11a1da82119a729875d1ff5a104072cd74f8"
            },
            "downloads": -1,
            "filename": "autoqt6-0.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "c970bae86965a1bb8c44acd3b18ce4b1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 2750,
            "upload_time": "2025-01-23T19:39:51",
            "upload_time_iso_8601": "2025-01-23T19:39:51.658414Z",
            "url": "https://files.pythonhosted.org/packages/b2/d1/0ac3b9525e7db13e775a46d6c23271e1f7a30b389cb2b10e7dd52c7c64ab/autoqt6-0.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "62e23229b6734a3a009f2664a05b533bd78d3d506be7de0e1c49b178fb489ab9",
                "md5": "a6507f5d07087e2a990ef4e535f66a14",
                "sha256": "0e29214ae90e760143ff914b480abe045a0f05a383b85558e4b470f24a961b0c"
            },
            "downloads": -1,
            "filename": "autoqt6-0.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "a6507f5d07087e2a990ef4e535f66a14",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 2593,
            "upload_time": "2025-01-23T19:39:52",
            "upload_time_iso_8601": "2025-01-23T19:39:52.740093Z",
            "url": "https://files.pythonhosted.org/packages/62/e2/3229b6734a3a009f2664a05b533bd78d3d506be7de0e1c49b178fb489ab9/autoqt6-0.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-23 19:39:52",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "jrj99",
    "github_project": "autoqt6",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "requirements": [
        {
            "name": "PySide6",
            "specs": [
                [
                    ">=",
                    "6.2.0"
                ]
            ]
        },
        {
            "name": "PyQt6",
            "specs": [
                [
                    "==",
                    "6.0.2"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": []
        },
        {
            "name": "wheel",
            "specs": []
        },
        {
            "name": "twine",
            "specs": []
        }
    ],
    "lcname": "autoqt6"
}
        
Elapsed time: 1.23912s