An OOP framework for Tkinter, inspired by React
Project description
tkcomponents
An OOP framework for Tkinter, inspired by React
Quickstart
Setup
Below is an example of a custom component, a number label which updates its value periodically.
from tkinter import Label, IntVar
from tkcomponents import Component
class Counter(Component):
def __init__(self, container):
super().__init__(container, update_interval_ms=250) # The component will update 4 times per second
self._count__var = IntVar()
self._count__var.set(0)
@property
def _needs_render(self):
return self._count__var.get() % 5 == 0 # A full re-render will trigger on multiples of 5
def _update(self):
current_count = self._count__var.get()
self._count__var.set(current_count+1) # The counter will increase by 1 each update, a total of +4 per second
def _render(self):
Label(self._frame, textvariable=self._count__var).pack()
App Boilerplate
from tkinter import Tk
class App:
def __init__(self):
self.window = Tk()
Counter(self.window).render().pack() # Note that .render() is called from outside the component, not ._render()
self.window.mainloop()
if __name__ == "__main__":
App()
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tkcomponents-4.0.2.tar.gz
(14.1 kB
view details)
File details
Details for the file tkcomponents-4.0.2.tar.gz
.
File metadata
- Download URL: tkcomponents-4.0.2.tar.gz
- Upload date:
- Size: 14.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f1f87d7c5067c4b84b8e3da0d54de20d3c824a84ab4d09be90a2670952d8c8c3 |
|
MD5 | e2fe1ec46f4fdc47bf3ce8ebac217398 |
|
BLAKE2b-256 | d4f889821a8b35bf0d75016f9c907dc59713d6fa84302f4b72549fe01f54f444 |