Skip to main content

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


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)

Uploaded Source

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

Hashes for tkcomponents-4.0.2.tar.gz
Algorithm Hash digest
SHA256 f1f87d7c5067c4b84b8e3da0d54de20d3c824a84ab4d09be90a2670952d8c8c3
MD5 e2fe1ec46f4fdc47bf3ce8ebac217398
BLAKE2b-256 d4f889821a8b35bf0d75016f9c907dc59713d6fa84302f4b72549fe01f54f444

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page