lilytk


Namelilytk JSON
Version 0.2.0 PyPI version JSON
download
home_pageNone
SummaryTkinter components that I wanted to make :3
upload_time2024-11-27 04:50:57
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
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.
![Scrollable Example uwu 1](images/scrollable_example_uwu_1.png?raw=true "Scrollable Example uwu 1")

The scrollbar smoothly moves the ScrollableFrame's view and every `tk.Entry` component we added still allows text entry as expected.
![Scrollable Example uwu 2](images/scrollable_example_uwu_2.png?raw=true "Scrollable Example uwu 2")


            

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![Scrollable Example uwu 1](images/scrollable_example_uwu_1.png?raw=true \"Scrollable Example uwu 1\")\n\nThe scrollbar smoothly moves the ScrollableFrame's view and every `tk.Entry` component we added still allows text entry as expected.\n![Scrollable Example uwu 2](images/scrollable_example_uwu_2.png?raw=true \"Scrollable Example uwu 2\")\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"
}
        
Elapsed time: 0.90660s