我有一个 SH1106 显示器连接到我的 Raspberry Pi,我使用 luma.oled 控制它。
我可以用不同的字体显示各种内容,这很棒。但是,我不知道如何在不刷新整个显示的情况下向当前显示的内容添加内容。我的代码是这样的:
from os import system
import serial
from time import sleep
from luma.core.interface.serial import i2c
from luma.core.render import canvas
from luma.oled.device import sh1106
from PIL import ImageFont
# config display
device = sh1106(i2c(port=1, address=0x3C), rotate=0)
device.clear()
FA_solid = ImageFont.truetype('/home/pi/Desktop/tests/fa-solid-900.ttf', 16)
FA_regular = ImageFont.truetype('/home/pi/Desktop/tests/fa-regular-400.ttf', 16)
text_large = ImageFont.truetype('/home/pi/Desktop/tests/coolvetica condensed rg.ttf', 48)
text_small = ImageFont.truetype('/home/pi/Desktop/tests/coolvetica condensed rg.ttf', 16)
# display things
def show_icon(code):
with canvas(device) as draw:
draw.text((112, 0), text=code, font=FA_solid, fill="white")
def large_text(content, paddingleft =0, paddingtop =0):
with canvas(device) as draw:
draw.text((0, 0), text=content, font=text_large, fill="white")
def small_text(content, paddingleft =0, paddingtop =0):
with canvas(device) as draw:
draw.text((0, 0), text=content, font=text_small, fill="white")
show_icon("\uf124")
sleep(2)
large_text("Hi ;)")
sleep(10)
device.clear()
这会在右上角显示一个来自 fontawesome 的图标,然后清除屏幕并显示 Hi。如何更改它以显示图标 + hi?理想情况下,我会在屏幕上有“区域”,我可以在其中更改图标区域,同时保持文本显示,反之亦然。谢谢!
慕容森
潇潇雨雨
相关分类