preview projects using the ST7789 display in a tkinter window
Project description
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 displayparameters
-
displayType
a tkst display type (tkst.ST or tkst.TK)
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
-
tkst.DisplayError
a general error used by this module, will be raised if methods like tkst.Display().start() are called while the display is active, or if tkst.Display().display() is called after the display is stopped.
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
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
tkst-0.1.0.tar.gz
(4.0 kB
view hashes)
Built Distribution
tkst-0.1.0-py3-none-any.whl
(4.5 kB
view hashes)