Skip to main content

tkst

About

Preview projects using the ST7789 spi display (and corresponding python library) on your desktop with tkinter. Read more here.

jump to...

Doc

Display

  • tkst.Display(displayType)

    main class that provides methods for interacting with a display

    parameters

    methods

    • tkst.Display().start()

      starts the display. For tkst.TK displays it calls tkinter's mainloop() function, and for tkst.ST it calls ST7789's begin() function. Since mainloop() is blocking, tkst.Display().start() will block regardless of display type to ensure code works with either.
    • tkst.Display().awaitStart()

      blocks until tkst.Display().start() has started the display. This is likely unnecessary, as the display starts very quickly, however if you receive a tkst.DisplayError when first calling tkst.Display().display(), then it might be a good idea to use this.
    • tkst.Display().stop()

      stops the display. Any attempts to update the display after calling tkst.Display().stop() will result in a tkst.DisplayError.
    • tkst.Display().display(image)

      display a PIL.Image image on the display.

    properties

    • tkst().Display().output

      a tkst display type (tkst.ST or tkst.TK).
    • tkst().Display().width

      the width of the display (240px).
    • tkst().Display().hegiht

      the height of the display (240px).
    • tkst().Display().isRunning

      a boolean describing whether the display is currently running or not.
    • tkst().Display().root

      the root window on which any image is drawn. It is of type tkinter.Tk() window if tkst().Display().output is tkst.TK, or ST7789.ST7789() if tkst().Display().output is tkst.ST.

Display Types

  • tkst.ST

    display type corresponding to a physical ST7789 display. Requires the ST7789 module to be installed; if it is not, a tkst.DisplayError will be raised.

  • tkst.TK

    display type corresponding to a tkinter window. Requires the tkinter module to be installed; if it is not, a tkst.DisplayError will be raised.

Errors

Usage

  • Firstly import the tkst module (you'll also want to use Pillow and threading)
import tkst
from PIL import Image, ImageDraw, ImageFont
from threading import Thread
  • Define a function to be the target of the thread we're going to create
def updateDisplay(display):
    display.awaitStart()
    img = Image.new('RGB', (display.width, display.height), color=(0, 0, 0)) # the image we're going to display
    draw = ImageDraw.Draw(img) # a way for us to add text etc on top of the image
    draw.text((0,0), "hello, world!", font="/usr/share/fonts/gnu-free/FreeMono.otf", fill=(255, 255, 255)) # add some sample text to our image
    display.display(img) # show this image on the display
  • Set up a main function where we initialise the display and set everything going
def __main__():
    d = tkst.Display(tkst.TK) # just change tkst.TK to tkst.ST when you want to display it on the ST7789
    t = Thread(target=updateDisplay, args=[d,]) # thread to set the picture on the display, has to be threaded as tkst.Display().start() is blocking
    t.start() # start the updater thread
    d.start() # start the display

if __name__ == "__main__": # fancy way of starting the main function
    __main__()
  • Et vóila! That's your first program that you can easily test on your computer before displaying it on an ST7789.

Examples

Check out a couple of examples on my github repo

Metadata

Release files for tkst 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tkst 0.1.1
File Size Uploaded
tkst-0.1.1.tar.gz 4.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tkst 0.1.1
File Interpreter ABI Platform
tkst-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 8.6 kB

Release files / tkst-0.1.1.tar.gz

Download URL tkst-0.1.1.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
85ee59b08c3ca0a08d4dba4020a5691845babe1613178441dd8299a863b14d07
BLAKE2b-256 checksum
How to use checksums
e2a8f1ebd7d623c68e448cd9697f64edec113a175fcf23d93b249a05d9f4f64c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release files / tkst-0.1.1-py3-none-any.whl

Download URL tkst-0.1.1-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ffc8d1821780cdc8e9d15b5c719a783a164b29cfe77fe898b7a2cdbf87e335e0
BLAKE2b-256 checksum
How to use checksums
b050af463f31f3ca1272db1cb5f67b1f7e1274558215dd2c4c01f5f5f27033dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

Release history Release notifications | RSS feed

0.1.2

2 release files

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page