Name | lilytk JSON |
Version |
0.2.0
JSON |
| download |
home_page | None |
Summary | Tkinter components that I wanted to make :3 |
upload_time | 2024-11-27 04:50:57 |
maintainer | None |
docs_url | None |
author | None |
requires_python | >=3.10 |
license | None |
keywords |
components
lily
tkinter
widgets
|
VCS |
 |
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# lilytk
Tkinter components that I wanted to make :3
## Installing
This can be installed like any other PyPi package `pip install lilytk`
## Capabilities
### Highlightable
Adds functions that let the widget be highlighted and unhighlighted with configurable highlight color, highlight width, blink duration, blink delay.
### Scrollable
Automatically sets up platform independent mouse scroll events on the widget.
## Components
Here are all the components I have implemented and a brief description
### ScrollableFrame
Adds scrolling capabilities for the base `tk.Frame` widget. The frame is wrapped in a canvas with some scrollbars and other implementations I found make it so you have to add the child components to a member variable of the ScrollableFrame class. This ScrollableFrame handles the component hierarchy shizzwazz, so you can have an ergonomic experience.
```python
# examples/scrollable_example_uwu.py
import tkinter as tk
from lilytk import ScrollableFrame
app = tk.Tk()
app.title('scrollable example uwu')
app.geometry('1000x1000')
# You can specify tk.VERITCAL, tk.HORIZONTAL, or tk.BOTH to
# configure which ways this frame can scroll
scrollable_frame = ScrollableFrame(app, orient=tk.VERTICAL)
scrollable_frame.pack(expand=True, fill=tk.BOTH)
for i in range(0, 200):
row = tk.Frame(scrollable_frame)
row.pack(expand=True, fill=tk.X)
# Text can be in a scrollable list already with ttk.Treeview
# and tk.Listbox
label = tk.Label(row, text=str(i), anchor=tk.E)
label.pack(side=tk.LEFT, expand=True, fill=tk.X)
# However ttk.Treeview and tk.Listbox don't allow you to add
# tk.Entry widgets or anything that isn't a text string
entry = tk.Entry(row)
entry.pack(side=tk.RIGHT, expand=True, fill=tk.X)
app.mainloop()
```
You can notice, we have our list of components but we are only showing up to 26 out of 200. We also have a scrollbar on the right side.

The scrollbar smoothly moves the ScrollableFrame's view and every `tk.Entry` component we added still allows text entry as expected.

Raw data
{
"_id": null,
"home_page": null,
"name": "lilytk",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.10",
"maintainer_email": null,
"keywords": "components, lily, tkinter, widgets",
"author": null,
"author_email": "Lilith Cybi <lilith.cybi@syrency.com>",
"download_url": "https://files.pythonhosted.org/packages/ef/a4/9c8f3089f82956579838a78ed8a2239f6c16b153491db2291892052d6274/lilytk-0.2.0.tar.gz",
"platform": null,
"description": "# lilytk\nTkinter components that I wanted to make :3\n\n## Installing\nThis can be installed like any other PyPi package `pip install lilytk`\n\n## Capabilities\n\n### Highlightable\nAdds functions that let the widget be highlighted and unhighlighted with configurable highlight color, highlight width, blink duration, blink delay.\n\n### Scrollable\nAutomatically sets up platform independent mouse scroll events on the widget.\n\n## Components\nHere are all the components I have implemented and a brief description\n\n### ScrollableFrame\nAdds scrolling capabilities for the base `tk.Frame` widget. The frame is wrapped in a canvas with some scrollbars and other implementations I found make it so you have to add the child components to a member variable of the ScrollableFrame class. This ScrollableFrame handles the component hierarchy shizzwazz, so you can have an ergonomic experience.\n\n```python\n# examples/scrollable_example_uwu.py\nimport tkinter as tk\nfrom lilytk import ScrollableFrame\n\napp = tk.Tk()\napp.title('scrollable example uwu')\napp.geometry('1000x1000')\n\n# You can specify tk.VERITCAL, tk.HORIZONTAL, or tk.BOTH to \n# configure which ways this frame can scroll\nscrollable_frame = ScrollableFrame(app, orient=tk.VERTICAL)\nscrollable_frame.pack(expand=True, fill=tk.BOTH)\n\nfor i in range(0, 200):\n row = tk.Frame(scrollable_frame)\n row.pack(expand=True, fill=tk.X)\n\n # Text can be in a scrollable list already with ttk.Treeview \n # and tk.Listbox\n label = tk.Label(row, text=str(i), anchor=tk.E)\n label.pack(side=tk.LEFT, expand=True, fill=tk.X)\n\n # However ttk.Treeview and tk.Listbox don't allow you to add \n # tk.Entry widgets or anything that isn't a text string\n entry = tk.Entry(row)\n entry.pack(side=tk.RIGHT, expand=True, fill=tk.X)\n\napp.mainloop()\n```\n\nYou can notice, we have our list of components but we are only showing up to 26 out of 200. We also have a scrollbar on the right side.\n\n\nThe scrollbar smoothly moves the ScrollableFrame's view and every `tk.Entry` component we added still allows text entry as expected.\n\n\n",
"bugtrack_url": null,
"license": null,
"summary": "Tkinter components that I wanted to make :3",
"version": "0.2.0",
"project_urls": {
"Homepage": "https://github.com/jmeaster30/lilytk",
"Issues": "https://github.com/jmeaster30/lilytk/issues"
},
"split_keywords": [
"components",
" lily",
" tkinter",
" widgets"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "847f0a13cc358c545e84ad6561c35faae377879343baf471f8519d36b8be5133",
"md5": "db49d9740db2ca7c4fb01c3a6d9a1601",
"sha256": "8e2dfc0229936c93ef0c57df6525a0d676d19bf29e68d6e07aa331550298cc24"
},
"downloads": -1,
"filename": "lilytk-0.2.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "db49d9740db2ca7c4fb01c3a6d9a1601",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.10",
"size": 11763,
"upload_time": "2024-11-27T04:50:55",
"upload_time_iso_8601": "2024-11-27T04:50:55.878000Z",
"url": "https://files.pythonhosted.org/packages/84/7f/0a13cc358c545e84ad6561c35faae377879343baf471f8519d36b8be5133/lilytk-0.2.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "efa49c8f3089f82956579838a78ed8a2239f6c16b153491db2291892052d6274",
"md5": "ef9d96b4a03d86dab44a8879819078a6",
"sha256": "4c4b4ca9802fa2b2c109ce4c82a71b3f0286b45c8e4f6c0b200c952ea2f60783"
},
"downloads": -1,
"filename": "lilytk-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "ef9d96b4a03d86dab44a8879819078a6",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.10",
"size": 100689,
"upload_time": "2024-11-27T04:50:57",
"upload_time_iso_8601": "2024-11-27T04:50:57.636698Z",
"url": "https://files.pythonhosted.org/packages/ef/a4/9c8f3089f82956579838a78ed8a2239f6c16b153491db2291892052d6274/lilytk-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-27 04:50:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jmeaster30",
"github_project": "lilytk",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "lilytk"
}