Name | tkinter-layout-helpers JSON |
Version |
0.6.0
JSON |
| download |
home_page | None |
Summary | A library which is intended to simplify a placement of widgets with .grid() and .pack() methods |
upload_time | 2025-08-03 14:21:06 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.9 |
license | None |
keywords |
grid
pack
tkinter
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Tkinter Layout Helpers
[](https://github.com/insolor/tkinter-layout-helpers/actions/workflows/python-tests.yml)
[](https://insolor.github.io/tkinter-layout-helpers/)
[](https://coveralls.io/github/insolor/tkinter-layout-helpers?branch=master)
[](https://pypi.org/project/tkinter-layout-helpers/)
A library which is intended to simplify a placement of widgets with `.grid()` and `.pack()` methods:
- avoid manual calculation of indices of columns and rows when you add a widget;
- avoid typing-in some common parameters (like `sticky=tk.EW`) each time you add a widget;
- and more...
Work in progress.
As an example, this code:
```python
import tkinter as tk
from tkinter_layout_helpers.grid_helper import grid_manager
root = tk.Tk()
with grid_manager(root, sticky=tk.EW) as grid:
with grid.new_row() as row:
row.add(tk.Label(text="0", width=20))
row.add(tk.Label(text="1", width=20))
row.add(tk.Label(text="2", width=20))
row.add(tk.Label(text="3", width=20))
row.add(tk.Label(text="4", width=20))
with grid.new_row() as row:
row.add(tk.Entry()).set_column_span(4)
row.add(tk.Entry()).set_column_span(1)
with grid.new_row() as row:
row.add(tk.Entry()).set_column_span(3)
row.add(tk.Entry()).set_column_span(2)
with grid.new_row() as row:
row.add(tk.Entry()).set_column_span(2)
row.add(tk.Entry()).set_column_span(3)
with grid.new_row() as row:
row.add(tk.Entry()).set_column_span(1)
row.add(tk.Entry()).set_column_span(4)
for column in grid.columns:
column.configure(weight=1)
root.mainloop()
```
Gives the following result:

Example for the `pack_manager`:
```python
import tkinter as tk
from tkinter_layout_helpers import pack_manager
root = tk.Tk()
with pack_manager(root, fill=tk.BOTH) as packer:
packer.pack_left(tk.Label(text="Left bar", relief=tk.RAISED))
packer.pack_top(tk.Label(text="Top bar", relief=tk.RAISED))
packer.pack_bottom(tk.Label(text="Bottom bar", relief=tk.RAISED))
packer.pack_right(tk.Label(text="Right bar", relief=tk.RAISED))
packer.pack_expanded(tk.Text())
root.mainloop()
```
Result:

More examples see here: [examples](https://github.com/insolor/tkinter_layout_helpers/tree/master/examples)
Raw data
{
"_id": null,
"home_page": null,
"name": "tkinter-layout-helpers",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.9",
"maintainer_email": null,
"keywords": "grid, pack, tkinter",
"author": null,
"author_email": "insolor <insolor@gmail.com>",
"download_url": "https://files.pythonhosted.org/packages/cc/1f/d404c1a73481d5a978ac12dd1830a28c7eb8e2bf9028397a6a37ef4412ed/tkinter_layout_helpers-0.6.0.tar.gz",
"platform": null,
"description": "# Tkinter Layout Helpers\n\n[](https://github.com/insolor/tkinter-layout-helpers/actions/workflows/python-tests.yml)\n[](https://insolor.github.io/tkinter-layout-helpers/)\n[](https://coveralls.io/github/insolor/tkinter-layout-helpers?branch=master)\n[](https://pypi.org/project/tkinter-layout-helpers/)\n\nA library which is intended to simplify a placement of widgets with `.grid()` and `.pack()` methods:\n\n- avoid manual calculation of indices of columns and rows when you add a widget;\n- avoid typing-in some common parameters (like `sticky=tk.EW`) each time you add a widget;\n- and more...\n\nWork in progress.\n\nAs an example, this code:\n\n```python\nimport tkinter as tk\nfrom tkinter_layout_helpers.grid_helper import grid_manager\n\nroot = tk.Tk()\n\nwith grid_manager(root, sticky=tk.EW) as grid:\n with grid.new_row() as row:\n row.add(tk.Label(text=\"0\", width=20))\n row.add(tk.Label(text=\"1\", width=20))\n row.add(tk.Label(text=\"2\", width=20))\n row.add(tk.Label(text=\"3\", width=20))\n row.add(tk.Label(text=\"4\", width=20))\n\n with grid.new_row() as row:\n row.add(tk.Entry()).set_column_span(4)\n row.add(tk.Entry()).set_column_span(1)\n \n with grid.new_row() as row:\n row.add(tk.Entry()).set_column_span(3)\n row.add(tk.Entry()).set_column_span(2)\n \n with grid.new_row() as row:\n row.add(tk.Entry()).set_column_span(2)\n row.add(tk.Entry()).set_column_span(3)\n\n with grid.new_row() as row:\n row.add(tk.Entry()).set_column_span(1)\n row.add(tk.Entry()).set_column_span(4)\n\n for column in grid.columns:\n column.configure(weight=1)\n\nroot.mainloop()\n```\n\nGives the following result:\n\n\n\nExample for the `pack_manager`:\n\n```python\nimport tkinter as tk\n\nfrom tkinter_layout_helpers import pack_manager\n\nroot = tk.Tk()\n\nwith pack_manager(root, fill=tk.BOTH) as packer:\n packer.pack_left(tk.Label(text=\"Left bar\", relief=tk.RAISED))\n packer.pack_top(tk.Label(text=\"Top bar\", relief=tk.RAISED))\n packer.pack_bottom(tk.Label(text=\"Bottom bar\", relief=tk.RAISED))\n packer.pack_right(tk.Label(text=\"Right bar\", relief=tk.RAISED))\n packer.pack_expanded(tk.Text())\n\nroot.mainloop()\n```\n\nResult:\n\n\n\nMore examples see here: [examples](https://github.com/insolor/tkinter_layout_helpers/tree/master/examples)\n",
"bugtrack_url": null,
"license": null,
"summary": "A library which is intended to simplify a placement of widgets with .grid() and .pack() methods",
"version": "0.6.0",
"project_urls": {
"Documentation": "https://insolor.github.io/tkinter-layout-helpers",
"Homepage": "https://github.com/insolor/tkinter-layout-helpers",
"Repository": "https://github.com/insolor/tkinter-layout-helpers"
},
"split_keywords": [
"grid",
" pack",
" tkinter"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "abcb71609ae33c4958a6ebe59e20e5a80bdd0320c2f982e84b13fd8db4e726de",
"md5": "aab6810fe4070c2b6a60d66424ecbd09",
"sha256": "8ce16756edf4e2dbe5c830de959f9ea9673eee35c9710768f958d6bb32b5f6d2"
},
"downloads": -1,
"filename": "tkinter_layout_helpers-0.6.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "aab6810fe4070c2b6a60d66424ecbd09",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.9",
"size": 7435,
"upload_time": "2025-08-03T14:21:04",
"upload_time_iso_8601": "2025-08-03T14:21:04.882075Z",
"url": "https://files.pythonhosted.org/packages/ab/cb/71609ae33c4958a6ebe59e20e5a80bdd0320c2f982e84b13fd8db4e726de/tkinter_layout_helpers-0.6.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": null,
"digests": {
"blake2b_256": "cc1fd404c1a73481d5a978ac12dd1830a28c7eb8e2bf9028397a6a37ef4412ed",
"md5": "aacad38be507548cc095f92933f44b86",
"sha256": "bb9d62694bfee0d2ab85e71dd8a6fde93154372c3f0af06b7485fa89f2371854"
},
"downloads": -1,
"filename": "tkinter_layout_helpers-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "aacad38be507548cc095f92933f44b86",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.9",
"size": 55940,
"upload_time": "2025-08-03T14:21:06",
"upload_time_iso_8601": "2025-08-03T14:21:06.075644Z",
"url": "https://files.pythonhosted.org/packages/cc/1f/d404c1a73481d5a978ac12dd1830a28c7eb8e2bf9028397a6a37ef4412ed/tkinter_layout_helpers-0.6.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-08-03 14:21:06",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "insolor",
"github_project": "tkinter-layout-helpers",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "tkinter-layout-helpers"
}