tkutils


Nametkutils JSON
Version 1.1.2 PyPI version JSON
download
home_pagehttp://frederic-zinelli.gitlab.io/tkutils/
SummaryPython tkinter utilities.
upload_time2024-04-07 14:34:38
maintainerNone
docs_urlNone
authorFrédéric Zinelli
requires_python<4.0,>=3.8
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # Welcome to TkUtils

`tkutils` is a package offering some additional logic and syntactic sugar when using `tkinter`.
The main goal is to fill some gaps of tkinter, which might make it very annoying to use.

Online version of the help documentation: http://frederic-zinelli.gitlab.io/tkutils/



## Features


### Additional logic: two-way binding, with [`Binder`](http://frederic-zinelli.gitlab.io/tkutils/binder/binder_overview/)

The [`Binder`](http://frederic-zinelli.gitlab.io/tkutils/binder/binder_overview/) class is  to setup a transparent two-way
binding reactivity between widgets and underlying object properties from the model/logic layer
of the application.

Several advantages come with this:

* Changes of bound properties in the model layer are cascading in the GUI automatically.
* The model layer of the application becomes (finally) totally independent from the presentation
  layer. This means it becomes very easy to build and test the model layer, without any need to
  think about its integration with `tkinter` itself.



### Syntactic sugar


#### [`GridLayout`](http://frederic-zinelli.gitlab.io/tkutils/grid_layout/grid_layout/)

A grid layout manager which is abstracting away all the naughty `widget.grid(...)` calls and
rows/columns grid configuration. Positioning widgets in the grid and controlling their "spanning"
becomes very easy, without extra typing.


#### [`MenuBuilder`](http://frederic-zinelli.gitlab.io/tkutils/menu_builder/menu_builder/)

A helper to build menus and to abstract away all the technicalities encountered when creating menus through
`tkinter`, which quickly make the declarations very unclear. Using the [`MenuBuilder`](http://frederic-zinelli.gitlab.io/tkutils/menu_builder/menu_builder/), the actual `Menu` hierarchy becomes very obvious: "what you see is what you get".


#### [`Event`](http://frederic-zinelli.gitlab.io/tkutils/event/)

A utility to build event strings with auto-completion/IDE suggestions support.


#### [`KeySym`](http://frederic-zinelli.gitlab.io/tkutils/key_sym/)

A utility to get all keysym information with auto-completion/IDE suggestions (providing string,
keycode and keysym_num values).


#### [`images`](http://frederic-zinelli.gitlab.io/tkutils/images/images/)

Various factories related to images to:

* Simplify and reduce the typing needed,
* Handle file conversions automatically,
* Register automatically the image object on the host for the user (to avoid garbage collection).




## Requirements

- python 3.8+
- Pillow



## Installation

* Through [PyPi](https://pypi.org/project/tkutils/):

```bash
pip install tkutils
```

* Using an archive file (with the appropriate version number):

```bash
pip install tkutils.1.0.2.tar.gz
```

* Cloning the [GitLab repository](https://gitlab.com/frederic-zinelli/tkutils).


            

Raw data

            {
    "_id": null,
    "home_page": "http://frederic-zinelli.gitlab.io/tkutils/",
    "name": "tkutils",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.8",
    "maintainer_email": null,
    "keywords": null,
    "author": "Fr\u00e9d\u00e9ric Zinelli",
    "author_email": "frederic.zinelli@gmail.com",
    "download_url": "https://files.pythonhosted.org/packages/35/a2/831197c70e9cf94871636d1120ac0789d846bb4faf16adf4c5cf83ea0a69/tkutils-1.1.2.tar.gz",
    "platform": null,
    "description": "# Welcome to TkUtils\n\n`tkutils` is a package offering some additional logic and syntactic sugar when using `tkinter`.\nThe main goal is to fill some gaps of tkinter, which might make it very annoying to use.\n\nOnline version of the help documentation: http://frederic-zinelli.gitlab.io/tkutils/\n\n\n\n## Features\n\n\n### Additional logic: two-way binding, with [`Binder`](http://frederic-zinelli.gitlab.io/tkutils/binder/binder_overview/)\n\nThe [`Binder`](http://frederic-zinelli.gitlab.io/tkutils/binder/binder_overview/) class is  to setup a transparent two-way\nbinding reactivity between widgets and underlying object properties from the model/logic layer\nof the application.\n\nSeveral advantages come with this:\n\n* Changes of bound properties in the model layer are cascading in the GUI automatically.\n* The model layer of the application becomes (finally) totally independent from the presentation\n  layer. This means it becomes very easy to build and test the model layer, without any need to\n  think about its integration with `tkinter` itself.\n\n\n\n### Syntactic sugar\n\n\n#### [`GridLayout`](http://frederic-zinelli.gitlab.io/tkutils/grid_layout/grid_layout/)\n\nA grid layout manager which is abstracting away all the naughty `widget.grid(...)` calls and\nrows/columns grid configuration. Positioning widgets in the grid and controlling their \"spanning\"\nbecomes very easy, without extra typing.\n\n\n#### [`MenuBuilder`](http://frederic-zinelli.gitlab.io/tkutils/menu_builder/menu_builder/)\n\nA helper to build menus and to abstract away all the technicalities encountered when creating menus through\n`tkinter`, which quickly make the declarations very unclear. Using the [`MenuBuilder`](http://frederic-zinelli.gitlab.io/tkutils/menu_builder/menu_builder/), the actual `Menu` hierarchy becomes very obvious: \"what you see is what you get\".\n\n\n#### [`Event`](http://frederic-zinelli.gitlab.io/tkutils/event/)\n\nA utility to build event strings with auto-completion/IDE suggestions support.\n\n\n#### [`KeySym`](http://frederic-zinelli.gitlab.io/tkutils/key_sym/)\n\nA utility to get all keysym information with auto-completion/IDE suggestions (providing string,\nkeycode and keysym_num values).\n\n\n#### [`images`](http://frederic-zinelli.gitlab.io/tkutils/images/images/)\n\nVarious factories related to images to:\n\n* Simplify and reduce the typing needed,\n* Handle file conversions automatically,\n* Register automatically the image object on the host for the user (to avoid garbage collection).\n\n\n\n\n## Requirements\n\n- python 3.8+\n- Pillow\n\n\n\n## Installation\n\n* Through [PyPi](https://pypi.org/project/tkutils/):\n\n```bash\npip install tkutils\n```\n\n* Using an archive file (with the appropriate version number):\n\n```bash\npip install tkutils.1.0.2.tar.gz\n```\n\n* Cloning the [GitLab repository](https://gitlab.com/frederic-zinelli/tkutils).\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Python tkinter utilities.",
    "version": "1.1.2",
    "project_urls": {
        "Homepage": "http://frederic-zinelli.gitlab.io/tkutils/",
        "Repository": "https://gitlab.com/frederic-zinelli/tkutils"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b72a4bf59c901e1672e2dc547907f040fcfb6dad1d357fdda854423aa703208b",
                "md5": "342a3c6a42922bd82e5ada34361a23fc",
                "sha256": "7fcfc9b08200e7a5640bf4c4024ebe09b24b077955d39509dbcf771e89dc703c"
            },
            "downloads": -1,
            "filename": "tkutils-1.1.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "342a3c6a42922bd82e5ada34361a23fc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.8",
            "size": 44136,
            "upload_time": "2024-04-07T14:34:36",
            "upload_time_iso_8601": "2024-04-07T14:34:36.765368Z",
            "url": "https://files.pythonhosted.org/packages/b7/2a/4bf59c901e1672e2dc547907f040fcfb6dad1d357fdda854423aa703208b/tkutils-1.1.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "35a2831197c70e9cf94871636d1120ac0789d846bb4faf16adf4c5cf83ea0a69",
                "md5": "e717621d33f44874bf21d2964db5c861",
                "sha256": "49a28e949dd2ee744cb7f1aa3c7e8d2055520f20639c9734442bf9e8f77ab267"
            },
            "downloads": -1,
            "filename": "tkutils-1.1.2.tar.gz",
            "has_sig": false,
            "md5_digest": "e717621d33f44874bf21d2964db5c861",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.8",
            "size": 36100,
            "upload_time": "2024-04-07T14:34:38",
            "upload_time_iso_8601": "2024-04-07T14:34:38.904752Z",
            "url": "https://files.pythonhosted.org/packages/35/a2/831197c70e9cf94871636d1120ac0789d846bb4faf16adf4c5cf83ea0a69/tkutils-1.1.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-07 14:34:38",
    "github": false,
    "gitlab": true,
    "bitbucket": false,
    "codeberg": false,
    "gitlab_user": "frederic-zinelli",
    "gitlab_project": "tkutils",
    "lcname": "tkutils"
}
        
Elapsed time: 0.70560s