Metadata-Version: 2.3
Name: lilytk
Version: 0.1.0
Summary: Tkinter components that I wanted to make :3
Project-URL: Homepage, https://github.com/jmeaster30/lilytk
Project-URL: Issues, https://github.com/jmeaster30/lilytk/issues
Author-email: Lilith Cybi <lilith.cybi@syrency.com>
License-File: LICENSE
Keywords: components,lily,tkinter,widgets
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Provides-Extra: dev
Requires-Dist: build>=1.2; extra == 'dev'
Requires-Dist: bumpver>=2023.1129; extra == 'dev'
Requires-Dist: hatch>=1.13; extra == 'dev'
Requires-Dist: pip-tools>=7.4; extra == 'dev'
Requires-Dist: twine>=5.1.1; extra == 'dev'
Description-Content-Type: text/markdown

# lilytk
Tkinter components that I wanted to make :3

## Installing
This can be installed like any other PyPi package `pip install lilytk`

## 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")

