{"id":19392216,"url":"https://github.com/unsignedarduino/tkzero","last_synced_at":"2025-04-24T01:32:46.914Z","repository":{"id":52500975,"uuid":"360708517","full_name":"UnsignedArduino/TkZero","owner":"UnsignedArduino","description":"TkZero - a lightweight and Pythonic wrapper around Tkinter.","archived":false,"fork":false,"pushed_at":"2021-10-04T21:16:39.000Z","size":1150,"stargazers_count":8,"open_issues_count":7,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2024-09-06T11:11:43.349Z","etag":null,"topics":["cross-platform","gui","library","module","pypi","pypi-module","python","python-module","python-wrapper","python3","python3-library","tcl","tk","tkinter","wrapper"],"latest_commit_sha":null,"homepage":"https://unsignedarduino.github.io/TkZero/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UnsignedArduino.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-04-22T23:33:48.000Z","updated_at":"2024-02-28T16:40:53.000Z","dependencies_parsed_at":"2022-09-07T17:12:46.980Z","dependency_job_id":null,"html_url":"https://github.com/UnsignedArduino/TkZero","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnsignedArduino%2FTkZero","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnsignedArduino%2FTkZero/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnsignedArduino%2FTkZero/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UnsignedArduino%2FTkZero/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UnsignedArduino","download_url":"https://codeload.github.com/UnsignedArduino/TkZero/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223940985,"owners_count":17228933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cross-platform","gui","library","module","pypi","pypi-module","python","python-module","python-wrapper","python3","python3-library","tcl","tk","tkinter","wrapper"],"created_at":"2024-11-10T10:31:23.115Z","updated_at":"2024-11-10T10:32:09.981Z","avatar_url":"https://github.com/UnsignedArduino.png","language":"Python","readme":"# TkZero\n[![PyPI Version][pypi-image]][pypi-url]\n[![Build Status][build-image]][build-url]\n[![Code Coverage][coverage-image]][coverage-url]\n[![License][license-image]][license-url]\n[![Code style: black][code-style-image]][code-style-link]\n\nA lightweight and Pythonic wrapper around Tkinter.\n\n[Documentation](https://unsignedarduino.github.io/TkZero/) is available on \nGitHub pages. You can find the raw HTML for the docs in the \n[`docs/`](https://github.com/UnsignedArduino/TkZero/tree/main/docs) directory.\n[`pdoc`](https://pdoc3.github.io/pdoc/) is used to generate the documentation.\n\nYou can find examples in the \n[`Examples/`](https://github.com/UnsignedArduino/TkZero/tree/main/Examples) \ndirectory and tests in the \n[`Tests/`](https://github.com/UnsignedArduino/TkZero/tree/main/Tests) directory.\n\n## Installation\n\n### Using PyPI (recommended)\nWindows:\n```commandline\npip install TkZero\n```\nmacOS and Linux:\n```shell\npip3 install TkZero\n```\nYou may need to use the user (`-U`) flag to install if you are not using a \nvirtual environment!\n\n### From source\n\n#### Using Git\nMake sure you have [Git](https://git-scm.com/) before following these steps. \nIf you are on Windows, I highly suggest you install the \n[Windows Terminal](https://www.microsoft.com/en-us/p/windows-terminal/9n0dx20hk701)\nas it's much better than the command prompt.\n\n1. `cd` into your project root.\n2. Run `git clone https://github.com/UnsignedArduino/TkZero`\n3. Run `cd TkZero`\n4. Install TkZero's dependencies with `pip install -r requirements.txt`. \n   (`pip3` on Linux and macOS - you may also need to use the user (`-U`) flag \n   if you are not using a virtual environment)\n\nThat's it!\n\n#### Downloading via zip\nGo to the main page of this [repo](https://github.com/UnsignedArduino/TkZero),\nclick on the green `Code` button and click `Download ZIP`. Once the zip file \nfinishes downloading, extract all of it to your project root. Then open a \nterminal and run:\n\n1. `cd` into your project root.\n2. `cd TkZero`\n3. Install TkZero's dependencies with `pip install -r requirements.txt`. \n   (`pip3` on Linux and macOS - you may also need to use the user (`-U`) flag \n   if you are not using a virtual environment)\n\nThat's it!\n\n## A simple example\n\n```python\nimport tkinter as tk\n\nfrom TkZero.Button import Button\nfrom TkZero.Entry import Entry\nfrom TkZero.Label import Label\nfrom TkZero.MainWindow import MainWindow\n\n# Make the main window and give it a title\nroot = MainWindow()\nroot.title = \"Log in\"\n\n# Create a label and grid it\nLabel(root, text=\"Username: \").grid(row=0, column=0, sticky=tk.NW)\n\n# Create an entry and grid it\nusername = Entry(root, width=30)\nusername.grid(row=0, column=1, sticky=tk.NW)\n\n# Create more labels and entries\nLabel(root, text=\"Password: \").grid(row=1, column=0, sticky=tk.NW)\n\npassword = Entry(root, width=30, show=\"*\")\npassword.grid(row=1, column=1, sticky=tk.NW)\n\n\n# \"Submit\" the form\ndef submit():\n    root.enabled = False\n    print(username.value)\n    print(password.value)\n\n\n# Create a button to \"submit\"\nsubmit = Button(root, text=\"Submit\", command=submit)\nsubmit.grid(row=3, column=0, columnspan=2, sticky=tk.NSEW)\n\n# Start the mainloop like in Tkinter\nroot.mainloop()\n```\n\nSee? Looks much better than Tkinter code ;)\n\n## Help! I don't understand how to use this!\n\nIf you still don't understand, please open a \n[discussion](https://github.com/UnsignedArduino/TkZero/discussions/new) - I'd \nlove to help you!\n\n## How you can help\n\nWant to help! Great! Here are some ways you can help: (from easiest to hardest)\n\n### Suggest an idea\n\nAre you annoyed by something in Tkinter that hasn't been wrapped in TkZero? \nPlease comment in this \n[discussion](https://github.com/UnsignedArduino/TkZero/discussions/4)! You can \nalso open an issue for a feature request \n[here](https://github.com/UnsignedArduino/TkZero/issues/new?template=feature_request.md)\nbut don't forget to make sure that there isn't an issue for it open already!\n\n### Report a bug\n\nFound a bug? Great! Please report it \n[here](https://github.com/UnsignedArduino/TkZero/issues/new?template=bug_report.md)\nbut don't forget to make sure that there isn't an issue for it open already!\n\n### Run unit tests and improve test coverage\n\nAs I develop on Windows, I'm unable to run my unit tests on macOS and Linux. If\nyou could run your unit tests and report any failures as a bug report, I would \nbe ever grateful. Even better, you can improve the test coverage by adding on \nto the unit tests!\n\nTo get the coverage make sure you install `coverage` with \n`pip install coverage` (`pip3` for macOS and Linux and you may need to use the\nuser (`-U`) flag if you are not in a virtual environment) and then you can run \nthese commands: (make sure you `git clone`d this repo and `cd` into it!)\n\n```commandline\ncoverage erase\ncoverage run --include=TkZero/* -m pytest -ra\ncoverage report -m\n```\n\n### Adding examples\n\nYou can help by adding or improving (or simplifying!) examples, like for \nindividual widgets\n[here](https://github.com/UnsignedArduino/TkZero/tree/main/Examples/Widgets) or\n\"full applications\" \n[here](https://github.com/UnsignedArduino/TkZero/tree/main/Examples/FullApps).\n\n\n### Help fix bugs and full-fill feature requests with a pull request\n\nSquashing bugs and implementing features can take time. If you are impatient \nlike me, you can help to try to fix those bugs and full-fill feature requests! \nPlease do not forget to run your code through `black`, `flake8`, `pylint`, and\n`mypy`! You can also automate this by using `tox` at the repo root:\n\n```commandline\ntox -e py39\n```\n\n### Donate\n\nIf you want to give me your money (even just 1 dollar goes a long way) here \nare my addresses :)\n\nDon't worry, I'll let you mine to it as well ;) \n\nMonero address:\n```text\n89tu7CLRFHV1b1qZ6Y8WixeSsFpUJm1gC3dAx5jUb7gqHP5ssczPqyRP7Pt98uEB3TQ4hEEoB7wTA97AC8gXU89o6gNYeyD\n```\nBitcoin address:\n```text\nbc1qgq88e0hcf2q2xhg503zmhaqz7d7dfc8k9nvu9x\n```\n\n\u003c!-- Badges --\u003e\n\n[pypi-image]: https://img.shields.io/pypi/v/TkZero\n[pypi-url]: https://pypi.org/project/TkZero/\n[build-image]: https://github.com/UnsignedArduino/TkZero/actions/workflows/build.yml/badge.svg\n[build-url]: https://github.com/UnsignedArduino/TkZero/actions/workflows/build.yml\n[coverage-image]: https://codecov.io/gh/UnsignedArduino/TkZero/branch/main/graph/badge.svg?token=ZUP6MD6INL\n[coverage-url]: https://codecov.io/gh/UnsignedArduino/TkZero\n[license-image]: https://badgen.net/github/license/UnsignedArduino/TkZero\n[license-url]: https://github.com/UnsignedArduino/TkZero/blob/main/LICENSE\n[code-style-image]: https://img.shields.io/badge/code%20style-black-000000.svg\n[code-style-link]: https://github.com/psf/black\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funsignedarduino%2Ftkzero","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Funsignedarduino%2Ftkzero","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Funsignedarduino%2Ftkzero/lists"}